🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
### 语法 ~~~ export { name1, name2, …, nameN }; export { variable1 as name1, variable2 as name2, …, nameN }; export let name1, name2, …, nameN; // also var export let name1 = …, name2 = …, …, nameN; // also var, const export function FunctionName() {...} export class ClassName {...} export default expression; export default function (…) { … } // also class, function* export default function name1(…) { … } // also class, function* export { name1 as default, … }; export * from …; export { name1, name2, …, nameN } from …; export { import1 as name1, import2 as name2, …, nameN } from …; ~~~ nameN导出的标识符(用来被其他脚本的import导入) ### 命名导出 ~~~js // exports a function declared earlier export { myFunction }; // exports a constant export const foo = Math.sqrt(2); ~~~ ### 默认导出(函数) ~~~js export default function() {} ~~~ ### 默认导出(类) ~~~js export default class {} ~~~ 命名导出对导出多个值很有用。在导入期间,必须使用相应对象的相同名称。 但是,可以使用任何名称导入默认导出,例如: ~~~ export default k = 12; // in file test.js import m from './test' // note that we got the freedom to use import m instead of import k, because k was default export console.log(m); // will log 12 ~~~ **只能有一个默认的导出** 如果需要导出默认值,请使用下列代码: ~~~html import mod from "mod"; export default mod; ~~~ ### 示例: 标准导出 ~~~js // module "my-module.js" function cube(x) { return x * x * x; } const foo = Math.PI + Math.SQRT2; export { cube,foo }; ~~~ 其他脚本引用 ~~~js import { cube, foo } from 'my-module.js'; console.log(cube(3)); // 27 console.log(foo); // 4.555806215962888 ~~~ 默认导出 如果我们要导出一个值或模块中的返回值,就可以使用默认导出: ~~~js // module "my-module.js" export default function cube(x) { return x * x * x; } ~~~ 然后,在另一个脚本中,可以直接导入默认导出: ~~~js // module "my-module.js" import cube from 'my-module'; console.log(cube(3)); // 27​​​​​ ~~~ ### 模块重定向 如果我们要从另一个模块(有效地创建“重定向”)中导出默认值(default)和 星标(\*): ~~~ // module "redirect-module.js" export {default} from './other-module'; export * from './other-module'; ~~~