Javascript ES6默认和命名导出
我试图理解命名和默认导出。我有一个看似基本的需求,我不知道如何设置 我希望能够同时导入以下两项:Javascript ES6默认和命名导出,javascript,export,ecmascript-6,es6-module-loader,Javascript,Export,Ecmascript 6,Es6 Module Loader,我试图理解命名和默认导出。我有一个看似基本的需求,我不知道如何设置 我希望能够同时导入以下两项: //app.js import Mod from './my-module' import { funcA, funcB } from './my-module' console.log('A', Mod.funcA(), funcA()); // A a a console.log('B', Mod.funcB(), funcB()); // A a a 当我尝试时,最接近的方法是: //my
//app.js
import Mod from './my-module'
import { funcA, funcB } from './my-module'
console.log('A', Mod.funcA(), funcA()); // A a a
console.log('B', Mod.funcB(), funcB()); // A a a
当我尝试时,最接近的方法是:
//my-module.js
export function funcA() { return 'a'; };
export function funcB() { return 'b'; };
export default {funcA, funcB}
我的问题是,我不想在默认导出中重新索引每个函数。我只想定义我的函数,然后确保它们被导出,这样我就可以任意使用它们
建议?或者我必须使用
import*作为“/my module”中的Mod代码>?使用*作为名称导入整个模块的内容一次
:
import * as Mod from './my-module';
然后使用分解结构将它们分配给单独的常量:
const { funcA, funcB } = Mod;
对于导出,只需使用命名的导出:
export function funcA() { return 'a'; };
export function funcB() { return 'b'; };
您可以省略默认导出,并将导入用作语法:
//app.js
import * as Mod from './my-module'
import { funcA, funcB } from './my-module'
console.log('A', Mod.funcA(), funcA()); // A a a
console.log('B', Mod.funcB(), funcB()); // B b b
因此,“/my module”
中的导入模块不能按上述方式使用?它可以如上所述使用,但我认为没有理由在默认导出中重复funcA
/funcB
//my-module.js
export function funcA() { return 'a'; };
export function funcB() { return 'b'; };