美文网首页
Javascript模块化概述

Javascript模块化概述

作者: ChrisChanSysu | 来源:发表于2019-05-27 15:33 被阅读0次

    概述

    • 在ES6(2015)之前,javascript并不是一种模块化编程的语言,因为ES6之前不支持class,也就没有所谓的module

    CommonJS规范(服务端)

    • 2009年出现Nodejs,将js用于服务端编程,标志着javascript模块化编程正式诞生

    • CommonJS暴露模块使用module.exports和exports

    • module.exports初始值为一个空对象{},exports是指向的modules.exports的引用,require()返回的是module.exports而不是exports,简而言之,区分他们之间的区别就是 exports 只是 module.exports的引用,辅助后者添加内容用的。
      所以,不应该说exports和module.exports有什么区别,因为他们根本不是同一作用的两个类别,仅仅是碰巧有相同单词。exports和module.exports

    • CommonJS中,有一个全局性方法require()用于加载模块

    AMD规范(浏览器端)

    • CommonJS规范不适用于浏览器环境的主要原因是,模块都在服务器端,加载时间取决于网速的快慢,可能要等待很长时间,导致浏览器假死
    • AMD即Asynchronous Module Definition的缩写
    • AMD规范的模块导出,使用define(),define(id?, dependencies?, factory)来定义,id是模块名称,dependencies是所依赖的模块数组,factory为工厂方法,返回一个模块函数
    • AMD中,同样使用require加载模块,但要求两个参数,require([module], callback),第二个参数为加载成功后的回调函数

    ES6标准规范

    • export导出模块,包括命名式导出(名称导出)和默认导出(定义式导出)
    • 命名式导出,export前缀关键词导出对象
    • 默认导出,export default
    • 默认导出能够在import时省略一个花括号

    相关文章

      网友评论

          本文标题:Javascript模块化概述

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