Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript ES6默认和命名导出_Javascript_Export_Ecmascript 6_Es6 Module Loader - Fatal编程技术网

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'; };