import React, { Component } from 'react';
不理解,import React
看了一下源码,也没找到到底 import 哪里 没在 react 中看见 export default
根据 react-native 中文社区网帖子的描述
http://bbs.reactnative.cn/topic/15/react-react-native-的 es5-es6 写法对照表
,感觉上是源码最后两行
var React_1 = React;
module.exports = React_1;
才可以 import React,但是,最后又说不能混用..
导出单个类
在 ES5 里,要导出一个类给别的模块用,一般通过 module.exports 来导出
//ES5
var MyComponent = React.createClass({
...
});
module.exports = MyComponent;
在 ES6 里,通常用 export default 来实现相同的功能:
//ES6
export default class MyComponent extends Component{
...
}
引用的时候也类似:
//ES5
var MyComponent = require('./MyComponent');
//ES6
import MyComponent from './MyComponent';
注意导入和导出的写法必须配套,不能混用!
除了阮一峰老师的 es6 还需要看什么书吗
1
Lxxyx 2017-07-04 06:59:46 +08:00 via Android
看 ES6 的模块系统的知识。
|
2
anjianshi 2017-07-04 08:07:56 +08:00 1
就是 module.exports = React_1; 起了作用。
不能混用不是绝对的,现在实现 ES6 import 的工具都考虑到了对 common js 的兼容性。 module.exports = xxx 会被这些工具看作是和 export default xxx 等价的 |
3
anjianshi 2017-07-04 08:12:57 +08:00
例子:这里有一个 NodeJS 提出的关于“如何用 es import 语法引入 common js 模块“的提案,可以参考一下
https://github.com/nodejs/node-eps/blob/master/002-es6-modules.md#54-es-consuming-commonjs |
4
NonClockworkChen OP @anjianshi 我一开始也是这么想的,不过,后来百度了一下,import React from 'react',那个 Segmentful 上有种说法是把 ES6 用 babel 转成了 ES5,感觉这个更加合理.
|