Yao*_*hao 203 import export ecmascript-6
用例很简单:我只想导入一个名称与导入对象一样的对象.
例如:
import React from 'react';
export React;
Run Code Online (Sandbox Code Playgroud)
但这不起作用.我要写:
import React from 'react';
export const React = React;
Run Code Online (Sandbox Code Playgroud)
但这很奇怪.这样做的正确方法是什么?
更新:
感谢您的帮助和参考.我用许多线索解决了我的问题.我想和我分享一些常见的案例和解决方案.
import d, {obj} from '...';
export {obj, d};
export {obj as name1, d as name2};
Run Code Online (Sandbox Code Playgroud)
export * from '...';
export * as name1 from '...';
Run Code Online (Sandbox Code Playgroud)
export {a, b as name1} from '...';
Run Code Online (Sandbox Code Playgroud)
export {default} from '...';
Run Code Online (Sandbox Code Playgroud)
export {default as name1} from '...';
Run Code Online (Sandbox Code Playgroud)
Eri*_* H. 106
我经常在组成几个文件的index.js文件中执行以下操作:
export {default as SomeClass} from './SomeClass';
export {someFunction} from './utils';
export {default as React} from 'react';
Run Code Online (Sandbox Code Playgroud)
此博客条目提供了一些不错的其他示例.
访问这些导出的导入时,您应该知道此eslint规则.基本上,在另一个文件中,你不应该:
import SomeClassModule from 'SomeClass/index.js';
SomeClassModule.someFunction(); // Oops, error
Run Code Online (Sandbox Code Playgroud)
你应该做这个:
import SomeClassModule, {someFunction} from 'SomeClass/index.js';
someFunction(); // Ok
Run Code Online (Sandbox Code Playgroud)
小智 27
您可以导出具有此类结构的导入文件
import First from './First'
import Second from './Second'
/..../
export { First, Second }
Run Code Online (Sandbox Code Playgroud)
Ric*_*aca -2
Given ./foo.js:
const Foo = class {
talk() { return 'hello'; }
};
export default Foo;
Run Code Online (Sandbox Code Playgroud)
Then you should be able to do this:
import Foo from './foo';
let foo = new Foo();
foo.talk(); // => 'hello';
Run Code Online (Sandbox Code Playgroud)
The syntax more or less follows the commonjs module.exports pattern, where you would do this:
const Foo = class {
};
module.exports = Foo;
Run Code Online (Sandbox Code Playgroud)
More here:
http://exploringjs.com/es6/ch_modules.html
| 归档时间: |
|
| 查看次数: |
47073 次 |
| 最近记录: |