码迷,mamicode.com
首页 > 其他好文 > 详细

react学习 | 踩坑指南

时间:2017-10-28 17:35:39      阅读:142      评论:0      收藏:0      [点我收藏+]

标签:comm   type   port   one   htm   target   asc   led   rtl   

react样式模块化的"omit -loader"坑

众所周知 react样式的模块化(css modules) 是自己模块中写自己的css,与其他模块互补影响,解决了命名冲突和全局污染的问题。

在使用css modules时,需要先配webpack.config  但是在配的时候,出现了这样的问题(前提是已经加载css-loader和style-loader)

技术分享

在这里我的css-loader是0.28.7 style-loader是0.19.0

看看自己的package文件的loader中是不是

{
test: /\.css$/,
loader: ‘style!css-loader?modules&importLoaders=1&localIdentName=[name]__[local]___[hash:base64:5]‘
},

错误是出在了 loader的“style”要改成"style-loader",如下

      {test: /\.css$/, loader: ‘style-loader!css-loader?modules&importLoaders=1&localIdentName=[name]__[local]___[hash:base64:5]‘}

那么问题就解决了。

react-router@4.2版本与react-router@2.8.1版本问题

在学到router时,按照阮一峰教程中输入写,发现总是报

warning.js:33 Warning: Failed prop type: Invalid prop `component` of type `object` supplied to `Route`, expected `function`.

恭喜你版本有问题,要么降到2.8.1要么使用4.2的路由语法,版本2和版本4 react-router还是有区别的。

  react-router-4.0简介

es6/es5中react引入导出问题

  react如果以ES5标准写,依据commonJS标准,引入用require

  类似于

var React = require("react");
var {
    Component,
    PropTypes
} = React;  //引用React抽象组件

  那么你的导出也必须是ES5标准 

var MyComponent = React.createClass({
    ...
});
module.exports = MyComponent;

  react如果以ES6标准去写,那么引入用import

import React, { 
    Component,
    PropTypes,
} from ‘react‘;

  导出用 export default 

export default class MyComponent extends Component{
    ...
}

 

  两者不能混用

  引入其他文件也是这样的

//ES5
var MyComponent = require(‘./MyComponent‘);

//ES6
import MyComponent from ‘./MyComponent‘;

  平常不注意这些细节问题,确实会在以后的开发中踩坑...

  React/React Native 的ES5 ES6写法对照表

 待续...

 

react学习 | 踩坑指南

标签:comm   type   port   one   htm   target   asc   led   rtl   

原文地址:http://www.cnblogs.com/dirkhe/p/7747295.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!