美文网首页
JavaScript 模块导入和导出

JavaScript 模块导入和导出

作者: Upcccz | 来源:发表于2019-08-08 11:23 被阅读0次

require 和 exports

require 对应的的导入,有 module.exports 和 exports 两种导出方式;

  • module.exports = {} 直接给导出值对象赋值
  • exports.a = {} 为导出值对象添加a属性

两者同时存在的情况:

// 两者同时存在的时候 以相当于直接赋值的 module.exports 为准
// test.js
module.exports = { name: 'jack'};
exports.a = { name : 'aaa' };
exports.b = { name : 'bbb' };

// main.js
var c = require('./test.js');
console.log(c);  // { name: 'jack' };

只有 exports的情况

// test2.js 相当于为导出值对象添加了a,b两个属性
exports.a = { name : 'aaa' };
exports.b = { name : 'bbb' };

// 等同于
module.exports = {
  a: { name : 'aaa' },
  b: { name : 'bbb' },
}


// main.js
var c = require('./test2.js');
console.log(c);  // {a : {name: 'aaa'}, b : {name : 'bbb' }}

import 和 export

import 对应的导入,有 export default 和 export 两种导出方式。

在同一个文件中,export default 只能有一个,而export可以有多个。两者可以共存

export default function () {} 相当于是为导出值对象设置'default'属性;

export function a () {} 相当于为导出值对象设置 'a' 属性;

而在import xx from './test.js' 默认引入的xx就是导出值对象的'default'属性,如果导出值对象没有'default'属性,则导入整个导出值对象。

import { a } from './test.js' 按需导入,类似解构赋值,即导入导出值对象的'a'属性。

export default {
  a: 'aaa'
}

export var b = 22;
// export 22; 报错,export 后面只能是声明或语句,因为对应的是exports必须要有属性名


// main.js
// 虽然可以共存,但是引入的时候却要分开引入
import defaultName, { b } from '@/utils/handle-enum';

console.log(defaultName); // {a: 'aaa'}
console.log(b); // 22

相关文章

  • JavaScript 模块导入和导出

    require 和 exports require 对应的的导入,有 module.exports 和 expor...

  • javascript模块导入导出

    第一次知道javascript有模块的概念通常都是使用 标签进行引入,不过只能在html文件上使用 增加的模块就如...

  • commonjs规范

    1.文件导出模块 2.在其他文件中导入模块 3.导出和导入多个模块导出:module.exports={ xx,y...

  • nodejs--day1笔记

    1. nodejs基础是ECMAScript和Node模块API 2. 模块导入导出 导出 导入 3. 系统模块f...

  • vue模块化

    ES模块化的导入和导出html部分: 模块部分: 导出部分:

  • JavaScript 模块化

    JavaScript 模块化的发展历程 任何模块化,都必须考虑的两个问题就是导入依赖和导出接口。 CommonJS...

  • 深入理解 TypeScript 模块

    之前有转载过一篇 JavaScript 中的模块导入和导出[https://www.jianshu.com/p/2...

  • node的导入模块,导出模块

    导出模块 导入模块

  • ES6导入模块,导出模块

    导出模块 导入模块

  • 模块 & promise

    一、模块(导入与导出) 1、export (1)导出可以导出多个命名模块导出时同时要声明 (2)导入通过解构导入模...

网友评论

      本文标题:JavaScript 模块导入和导出

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