如何导入ES6模块中的部分对象

Gle*_*ift 16 javascript module commonjs browserify ecmascript-6

反应文档中,我发现了这种导入PureRenderMixin的方法

var PureRenderMixin = require('react/addons').addons.PureRenderMixin;
Run Code Online (Sandbox Code Playgroud)

如何以ES6风格重写.我唯一能做的就是:

import addons from "react/addons";
let PureRenderMixin = addons.addons.PureRenderMixin;
Run Code Online (Sandbox Code Playgroud)

我希望有更好的方法.

jus*_*ris 19

不幸的是,import语句不像对象解构那样工作.这里的大括号意味着您要导入具有此名称但不是默认导出属性的标记.看看这对导入/导出:

 //module.js
 export default 'A';
 export var B = 'B';

 //script.js
 import A from './a.js';  //import value on default export
 import {B} from './a.js'; // import value by its name
 console.log(A, B); // 'A', 'B'
Run Code Online (Sandbox Code Playgroud)

对于您的情况,您可以导入整个对象并进行解构分配

 import addons from "react/addons";
 let {addons: {PureRenderMixin}} = addons;
Run Code Online (Sandbox Code Playgroud)

  • 来自'react/addons'的`import {addons}; const {PureRenderMixin} =插件;`也有效.另请参阅https://github.com/gaearon/react-pure-render#mixin (4认同)