JS模块规范

Posted 圣耀

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS模块规范相关的知识,希望对你有一定的参考价值。

ES6标准发布后,module成为标准,标准的使用是以export指令导出接口,以import引入模块,但是在我们一贯的node模块中,我们采用的是CommonJS规范,使用require引入模块,使用module.exports导出接口。node的module遵循CommonJS规范,requirejs遵循AMD,seajs遵循CMD,虽各有不同,但总之还是希望保持较为统一的代码风格。
ES6发布的module并没有直接采用CommonJS,甚至连require都没有采用,也就是说require仍然只是node的一个私有的全局方法,module.exports也只是node私有的一个全局变量属性,跟标准半毛钱关系都没有。require是运行时的,import它是编译时的,它必须放在文件开头,而且使用格式也是确定的。 
javascript ES6中,export default 和 export 区别:
1.export与export default均可用于导出常量、函数、文件、模块等 
2.你可以在其它文件或模块中通过import+(常量 | 函数 | 文件 | 模块)名的方式,将其导入,以便能够对其进行使用 
3.在一个文件或模块中,export、import可以有多个,export default仅有一个 
4.通过export方式导出,在导入时要加{ },export default则不需要 
1、
//demo1.js
export const str = hello world

export function f(a){
    return a+1
}

对应的导入方式:

//demo2.js
import { str, f } from demo1 //也可以分开写两次,导入的时候带花括号

import 需要知道demo.js所暴露的变量标识,否则无法加载

2、

//demo1.js
export default const str = hello world

对应的导入方式:

//demo2.js
import str from demo1 //导入的时候没有花括号

使用export default命令,为模块指定默认输出,这样就不需要知道所要加载模块的变量名

 

 

 

 

 

 

 

 

 

 

 

以上是关于JS模块规范的主要内容,如果未能解决你的问题,请参考以下文章

js 模块化的规范

CMD (sea.js)模块定义规范

Vue.js 组件编码规范

JS模块规范

Sea.js学习3——Sea.js的CMD 模块定义规范

Vue.js 组件编码规范