美文网首页前端-全栈
JavaScript中导出模块的不同方式?

JavaScript中导出模块的不同方式?

作者: 光明程辉 | 来源:发表于2023-06-28 19:15 被阅读0次

export defaultexport const 是 JavaScript 中用于导出模块的两种不同的导出语法。

  1. export default:

    • 用于导出模块的默认值。
    • 可以在一个模块中只有一个 export default
    • 在导入时,可以使用任意名称来引用默认导出的值。
    • 导入时可以省略花括号 {}

    示例:

    // 模块A.js
    const name = 'John';
    export default name;
    
    // 模块B.js
    import myName from './A.js';
    console.log(myName); // 输出: 'John'
    
  2. export const:

    • 用于导出命名的常量或变量。
    • 可以导出多个常量或变量。
    • 在导入时,需要使用相同的名称引用导出的值。
    • 导入时需要使用花括号 {} 包裹导入的值。

    示例:

    // 模块A.js
    export const name = 'John';
    export const age = 25;
    
    // 模块B.js
    import { name, age } from './A.js';
    console.log(name); // 输出: 'John'
    console.log(age);  // 输出: 25
    

需要根据使用场景和需求选择适当的导出方式。如果你的模块只导出一个默认值,可以使用 export default。如果你需要导出多个命名的常量或变量,可以使用 export const。在导入时也要根据导出方式使用相应的语法进行导入。

当涉及到模块的导入和导出时,除了 export defaultexport const,还有其他一些常用的导出语法和导入方式。

其他导出语法包括:

  1. 导出命名的函数或类:

    export function myFunction() {
      // 函数逻辑...
    }
    
    export class MyClass {
      // 类定义...
    }
    
  2. 导出命名的变量:

    export const myVariable = 'Hello';
    export let myOtherVariable = 42;
    
  3. 导出多个命名的变量或函数:

    const name = 'John';
    const age = 25;
    export { name, age };
    
  4. 导出时重命名:

    const myVariable = 'Hello';
    export { myVariable as greeting };
    

除了 import 语句用于导入模块之外,还有其他导入方式:

  1. 导入默认导出的值:

    import myName from './A.js';
    
  2. 导入具名导出的值:

    import { name, age } from './A.js';
    
  3. 导入所有导出的值到一个对象中:

    import * as myModule from './A.js';
    console.log(myModule.name);
    console.log(myModule.age);
    

进阶的技巧和用法:

  1. 默认导出和具名导出的混合使用:
    在一个模块中,可以同时使用默认导出和具名导出。这种情况下,可以在导入语句中混合使用默认导入和具名导入。

    示例:

    // 模块A.js
    export default 'Hello';
    export const name = 'John';
    
    // 模块B.js
    import defaultGreeting, { name } from './A.js';
    console.log(defaultGreeting); // 输出: 'Hello'
    console.log(name); // 输出: 'John'
    
  2. 导出时重命名和导入时重命名的结合使用:
    可以在导出模块时使用重命名,然后在导入模块时再次进行重命名。这种方式可以更灵活地控制导入和导出的命名。

    示例:

    // 模块A.js
    const myVariable = 'Hello';
    export { myVariable as greeting };
    
    // 模块B.js
    import { greeting as message } from './A.js';
    console.log(message); // 输出: 'Hello'
    
  3. 导入和导出时使用别名:
    可以使用 as 关键字来创建导入和导出时的别名,以提高代码的可读性或避免命名冲突。

    示例:

    // 模块A.js
    const myVariable = 'Hello';
    export { myVariable as greeting };
    
    // 模块B.js
    import { greeting as welcomeMessage } from './A.js';
    console.log(welcomeMessage); // 输出: 'Hello'
    
  • export default 用于导出模块的默认值。一个模块只能有一个默认导出,而且在导入时可以使用任意名称引用默认导出的值。

  • export const 用于导出命名的常量或变量。可以导出多个常量或变量,并且在导入时需要使用相同的名称引用导出的值。

总结一下两者的区别:

  • export default 导出的是默认值,导入时可以使用任意名称。
  • export const 导出的是具名的常量或变量,导入时需要使用相同的名称。

对于在 Vue 中的使用,如果你只需要导出一个默认的 Vue 组件或对象,可以使用 export default。如果你需要导出多个组件或对象,可以使用 export const

### 干货:关注我或微.信.公.众.号:全栈思维导航,目前在写一套开源项目(社交类):基于Spring Boot + Vue3 + 小程序 + APP的开源项目。关注不错过!!!

相关文章

网友评论

    本文标题:JavaScript中导出模块的不同方式?

    本文链接:https://www.haomeiwen.com/subject/kcpujdtx.html