美文网首页
js模块化理解

js模块化理解

作者: 全幼儿园最可爱的猪 | 来源:发表于2018-08-03 15:52 被阅读0次
无模块化
  1. 单个js文件, 文件大, 为了提高项目代码的可读性、可扩展性拆分成多个js文件
  2. 多个js文件之间的相互依赖关系,难以维护
  3. 每个模块都是暴露在全局的会污染全局的作用域,简单的使用,会导致全局变量命名冲突
CommonJS规范(同步加载模块)
  1. 每一个文件就是一个模块,其内部定义的变量是属于这个模块的,不会对外暴露,也就是说不会污染全局变量
  2. 核心思想
    1. 通过 require 方法来同步加载所要依赖的其他模块
    2. 通过 exports 或者 module.exports 来导出需要暴露的接口(exports指向的是module.exports的应用,不能对其直接赋值, 需要expors.名称 = value)
  3. 特点
    1: 所有要输出的对象统统挂载在 module.exports 上,然后暴露给外界
    2: 通过 require t同步加载别的模块,require 的返回值就是模块暴露的对象
    3: CommonJS 是一个单对象输出,单对象加载的模型
    4: 解决了依赖、全局变量污染的问题
   var a = {};
   module.exports.a = a;
   exports.a = a;
   module.exports = {a: a};

   var a = require('./a.js');
   console.log(a.a);
AMD规范
  1. 非同步加载模块,允许指定回调函数, requireJs是ADM规范的实现
  2. 定义了下面两个API:
    1: require([module], callback) 加载模块
    2: define(id, [depends], callback) 定义模块
  3. 特点:
    1: 异步加载模块
    2: 并行加载多个模块
    3: 提高了开发成本,并且不能按需加载,而是必须提前加载所有的依赖
CMD规范
  1. 非同步加载, 按需加载模块,seaJS是CMD规范的实现
 define(function(require, exports, module) {
 });
es6模块化
  1. import 关键字引入模块,通过 exprot 关键字导出模块,但是ES6目前无法在浏览器中执行,所以,我们只能通过babel将不被支持的import编译为当前受到广泛支持的 require
  2. 特点
    1:可通过以下方式输出任何对模块内部的引用
    export { A, B }
    export { A as a, B }
    export default A
    export const A = { }
    
    2:通过以下方式加载模块中输出的任意引用
    import A from './module'
    import * as A from './module'
    import { A, B } from './module'
    import { A as a, B } from './module'
    
    3:ES6 module 是一个多对象输出,多对象加载的模型

相关文章

  • 前端javascript模块化

    JavaScript js 模块化 关于js模块化的理解写法一 写法二 写法三 写发四(不推荐) 写发五 (错误写...

  • 模块化开发

    前端JS模块化开发有两大规范AMD合CMD,下面以我的理解来简单总结一下模块化开发的思想 ,以及js前端常用的AM...

  • js模块化理解

    无模块化 单个js文件, 文件大, 为了提高项目代码的可读性、可扩展性拆分成多个js文件 多个js文件之间的相互依...

  • 理解JS 模块化

    模块化是一个语言膨胀的必经之路,它能够帮助开发者拆分和组织代码。 Module模式 在模块化规范形成之前,JS开发...

  • 模块化开发

    js模块化开发vue模块化开发

  • webpack

    使用webpack前先要理解js模块化编程。webpack官网webpack中文文档 webpack是什么 web...

  • Javascript 模块化

    Javascript 模块化发展的历史精读 js 模块化发展直接定义依赖 (1999): 由于当时 js 文件非常...

  • (二)React面向组件编程

    React面向组件编程 一、模块化与组件化理解 一、模块 概念:向外提供特定功能的js程序, 一般就是一个js文件...

  • js模块化规范

    title: js模块化date: 2019-01-30 17:49:22tags: js 1.无模块化 缺点:1...

  • js 模块化

    尚硅谷_JS模块化 笔记

网友评论

      本文标题:js模块化理解

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