用例很简单:我只想导入一个名称与导入对象一样的对象.
例如:
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) 是否有使用ES6或ES7或babel的语法,这将允许我轻松地将许多子文件组捆绑在一起?
例如,给出:
./action_creators/index.js
./action_creators/foo_actions.js
./action_creators/bar_actions.js
Run Code Online (Sandbox Code Playgroud)
让index.js导入foo和bar动作,然后重新导出它们,所以我可以
import {FooAction, BarAction} from './action_creators/index.js'
Run Code Online (Sandbox Code Playgroud)
如果我要更改我自己组织对象的文件,我不想记住/更改引用.
我有两个javascript模块,如下所示:
// inner/mod.js
export function myFunc() {
// ...
}
// mod.js
import * as inner from "./inner/mod";
Run Code Online (Sandbox Code Playgroud)
我想出口myFunc的mod.js.我怎样才能做到这一点?
编辑:我应该澄清该功能正在按预期导出,inner/mod.js但我也想从外部导出功能mod.js.
对于那些要求澄清的人,我想实现这个目标:
// SomeOtherFile.js
import * as mod from "mod"; // NOT inner/mod
mod.myFunc();
Run Code Online (Sandbox Code Playgroud) // before
module.exports = require('./inner.js');
// nowadays
export default from './inner.js';
Run Code Online (Sandbox Code Playgroud)
我正在努力做到这一点,但是babel只在es7阶段1中允许它,因为它现在是提议.所以现在,我坚持这两行:
import sticker from './box-sticker.jsx';
export default sticker;
Run Code Online (Sandbox Code Playgroud)
我可以将它们缩短为一个吗?