lesson 2 模块化 2021-04-16
2021-04-23 本文已影响0人
jeff_nz
课程标题 波比-模块化
课程目标
知识点
- 什么是模块化 ——本质:所有的变量封装在一个函数,通过一个接口暴露出希望暴露出来的内容。
- 为什么要用模块化——a. 关注分离 b. 区分模块粒度 c. 更优雅的代码管理、高内聚
- code-spliting 按需加载 promise来实现
- 目前主要的模块规范有AMD,CMD和es6 module
AMD (依赖前置)
对应的主要js库有 require.js, curl.js
- require的时候加载了依赖的模块,首先加载全部模块
- 通过promise实现异步加载模块
- 没有实现按需加载
CMD (按需加载)
对应的js库有Sea.js
- 按需加载,依赖后置,在require的地方才去加载对应的部分。
COMMON JS
- 文件是一个模块,私有,内置两个变量module, require (exports = module.exports)
一个引入一个导出就构成了通信的基本结构 - 缓存,require会缓存一下,多次require可能及后续修改都是同一个地方的引用。
- 引用拷贝还是值拷贝,CMJ是值拷贝
- 运行时加载,同步加载
- 循环引用
ES moudule
- ESM是运行时绑定,类似引用拷贝
- 异步加载