V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
NonClockworkChen
V2EX  ›  问与答

求问 react-native 中关于 ES6 语法的一个问题.

  •  
  •   NonClockworkChen · 2017-07-04 06:44:43 +08:00 · 1249 次点击
    这是一个创建于 2460 天前的主题,其中的信息可能已经有所发展或是发生改变。
    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 还需要看什么书吗

    4 条回复    2017-07-04 08:36:59 +08:00
    Lxxyx
        1
    Lxxyx  
       2017-07-04 06:59:46 +08:00 via Android
    看 ES6 的模块系统的知识。
    anjianshi
        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 等价的
    anjianshi
        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
    NonClockworkChen
        4
    NonClockworkChen  
    OP
       2017-07-04 08:36:59 +08:00
    @anjianshi 我一开始也是这么想的,不过,后来百度了一下,import React from 'react',那个 Segmentful 上有种说法是把 ES6 用 babel 转成了 ES5,感觉这个更加合理.
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2834 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 14:53 · PVG 22:53 · LAX 07:53 · JFK 10:53
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.