commonjs和es6模块化的使用

一、 前端模块化

1.什么是模块化?

前端模块化是将一个复杂的程序依据一定的规则(规范)封装成几个块(文件), 并进行组合在一起, 块的内部数据与实现是私有的, 只是向外部暴露一些接口(方法)与外部其它模块通信

一、 commonjs

commonjs是用于node环境的一个语法的模块化的一个规范,nodejs是这种规范的实现,根据CommonJs规范,每个文件就是一个模块,有自己的作用域。在一个文件里面定义的变量、函数、类,都是私有的,对其他文件不可见,CommonJS规范加载模块是同步的,也就是说,加载完成才可以执行后面的操作,Node.js主要用于服务器编程,模块一般都是存在本地硬盘中,加载比较快,所以Node.js采用CommonJS规范。

定义模块
 // module.js
 let name = 'liakng xie';
 let sayName = function () {
   console.log(name);
  };
 module.exports = { name, sayName }
 // 或者
 exports.sayName = sayName;
加载模块
 // 通过 require 引入依赖
 let module = require('./module.js');
 module.sayName(); // likang xie
module.export跟exports的区别

1、module.exports 方法还可以单独返回一个数据类型(String、Number、Object...),而 exports 只能返回一个 Object 对象
2、所有的 exports 对象最终都是通过 module.exports 传递执行,因此可以更确切地说,exports 是给
module.exports 添加属性和方法

exports.name = 'likang xie';
exports.age = 21;
console.log(module.exports); // 运行结果:{ name: 'likang xie', age: 21 }  

3、同时用到module.export跟exports的时候

// 情况1
module.exports = { a: 1 }
exports.b = 2;
 // { a:1 }
console.log(module.exports);

// 情况2
module.exports.a =1;
exports.b = 2;
 // { a:1, b:2 }
console.log(module.exports);

二、 es6模块化

模块功能主要由两个命令构成:export和import。export命令用于规定模块的对外接口,import命令用于输入其他模块提供的功能。

定义模块、输出变量

a.js

export default { name: 'likang xie' }

b.js

// 输出多个变量
export let name = 'likang xie';
export let sayName = () => console.log(name);
使用模块
import people from 'a.js';
console.log(people); // { name: 'likang xie' }
// 将所有获取到的变量存到people里
import * as people from 'b.js';
console.log(people); // 一个module对象 { name: 'likang xie', sayName: .... }

// 或者
import { name, sayName } from 'b.js';

es6模块化包含了improt ,improt from ,exprot,exprot default 。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容