如何在 ES6 module中导入部分对象

IT技术 javascript module browserify ecmascript-6 commonjs
2021-03-18 05:07:50

react文档中,我找到了这种导入 PureRenderMixin 的方式

var PureRenderMixin = require('react/addons').addons.PureRenderMixin;

如何用 ES6 风格重写它。我唯一能做的就是:

import addons from "react/addons";
let PureRenderMixin = addons.addons.PureRenderMixin;

我希望有更好的方法。

2个回答

不幸的是,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'

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

 import addons from "react/addons";
 let {addons: {PureRenderMixin}} = addons;
import {addons} from 'react/addons'; const {PureRenderMixin} = addons;也有效。也看看github.com/gaearon/react-pure-render#mixin
2021-05-16 05:07:50
import PureRenderMixin from 'react-addons-pure-render-mixin';

请参阅此处的示例