webpack学习2.1 模块化开发(JS模块化&CSS模块化)
2024-10-11 20:50:13
一.JS模块化
命名空间,COMMONJS,AMD/CMD/UMD,ES6 module
1.什么是命名空间
库名.类别名.方法名
弊端:在命名空间重复生命,要记住完整的路径名(而且很长)
var NameSpace = {}
NameSpace.type = NameSpace.type || {} //已经定义了就是它自己,没有定义就赋值一个空对象给它,避免命名空间覆盖的问题
NameSpace.type.method = function () {}
2.什么COMMONJS (服务器端使用COMMONJS,浏览器端用不了COMMONJS的模块规范)
- Modules/1.1.1
- 一个文件为一个模块
- 通过module.exports暴露模块接口
- 通过require引入模块
- 同步执行
3.AMD(Async Module Definition)----异步模块定义(在浏览器端跑的)
- 使用define方法定义模块
- 使用require加载模块
- RequireJS
- 依赖前置,提前执行
4.CMD(Common Module Definition)
- 一个文件一个模块
- 使用define来定义一个模块
- 使用require来加载一个模块
- Sea JS
- 尽可能懒执行
5.UMD(Universal Module Definition)-----通用模块定义通用解决方案
三个步骤
- 判断是否支持AMD
- 判断是否支持commonJS
- 如果都没有就定义为全局变量
6.ESM(EcmaScript Module)(但是与之前的COMMONJS有些冲突)
一个文件一个模块
export/import
webpack支持三种模块化方式
- AMD(Require.js)
- ES Module(推荐的)[主流]
- CommonJS[主流]
二.CSS模块化
CSS设计模式
最新文章
- do while 和 while 的区别
- 在阿里云主机上基于CentOS用vsftpd搭建FTP服务器
- Winform 中DataGridView的checkbox列,当修改checkbox状态时实时获得其状态值
- ENode 1.0 - Command Service设计思路
- Linux将文件拷到u盘
- inline-block
- 关于Split方法
- Python3爬取百度百科(配合PHP)
- 判断鼠标从哪个方向进入--jQuery
- UVA 712 S-Trees
- WPF关于“在“System.Windows.Markup.StaticResourceHolder”上提供值时引发了异常。”问题解决办法
- 通过浏览器navigator判断浏览器版本或者手机类型&;&;判断微信访问
- Msys2配置总结
- hplus--H+ V2.3 (中文版)
- Vue-CLI和脚手架
- VMware中四种网络连接模式的区别
- POJ3621或洛谷2868 [USACO07DEC]观光奶牛Sightseeing Cows
- Facade外观模式(结构性模式)
- install vscode on centos
- 微信 audio 获取 duration 为 NaN 的解决方法