Open bfchengnuo opened 4 years ago
ES6 标准发布后,module 成为标准,标准的使用是以 export 指令导出接口,以 import 引入模块;这一点在博客介绍 ES 的时候也提到过。
在之前的 node 模块中,采用的大多数是 CommonJS 规范,使用 require 引入模块,使用 module.exports 导出接口。
module.exports
node 的 module 遵循 CommonJS 规范,requirejs 遵循 AMD,seajs 遵循 CMD,虽各有不同,但总之还是大体保持较为统一的代码风格。
require 的使用非常简单,它相当于 module.exports 的传送门,module.exports 后面的内容是什么,require 的结果就是什么,对象、数字、字符串、函数…… 再把 require 的结果赋值给某个变量,相当于把 require 和 module.exports 进行平行空间的位置重叠。
require('./a')(); // a模块是一个函数,立即执行a模块函数 var data = require('./a').data; // a模块导出的是一个对象 var a = require('./a')[0]; // a模块导出的是一个数组
如果使用 babel 支持 ES6,也仅仅是将 ES6 转码为 ES5 再执行,import 语法会被转码为 require; 目前,大多数 JS 引擎对 ES6 支持都不错,使用 ES6 语法是不错的选择。
ES6 标准发布后,module 成为标准,标准的使用是以 export 指令导出接口,以 import 引入模块;这一点在博客介绍 ES 的时候也提到过。
在之前的 node 模块中,采用的大多数是 CommonJS 规范,使用 require 引入模块,使用
module.exports
导出接口。require 的使用非常简单,它相当于
module.exports
的传送门,module.exports
后面的内容是什么,require 的结果就是什么,对象、数字、字符串、函数…… 再把 require 的结果赋值给某个变量,相当于把 require 和module.exports
进行平行空间的位置重叠。如果使用 babel 支持 ES6,也仅仅是将 ES6 转码为 ES5 再执行,import 语法会被转码为 require; 目前,大多数 JS 引擎对 ES6 支持都不错,使用 ES6 语法是不错的选择。