一.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支持三种模块化方式

  1. AMD(Require.js)
  2. ES Module(推荐的)[主流]
  3. CommonJS[主流]

二.CSS模块化

CSS设计模式

最新文章

  1. do while 和 while 的区别
  2. 在阿里云主机上基于CentOS用vsftpd搭建FTP服务器
  3. Winform 中DataGridView的checkbox列,当修改checkbox状态时实时获得其状态值
  4. ENode 1.0 - Command Service设计思路
  5. Linux将文件拷到u盘
  6. inline-block
  7. 关于Split方法
  8. Python3爬取百度百科(配合PHP)
  9. 判断鼠标从哪个方向进入--jQuery
  10. UVA 712 S-Trees
  11. WPF关于“在“System.Windows.Markup.StaticResourceHolder”上提供值时引发了异常。”问题解决办法
  12. 通过浏览器navigator判断浏览器版本或者手机类型&&判断微信访问
  13. Msys2配置总结
  14. hplus--H+ V2.3 (中文版)
  15. Vue-CLI和脚手架
  16. VMware中四种网络连接模式的区别
  17. POJ3621或洛谷2868 [USACO07DEC]观光奶牛Sightseeing Cows
  18. Facade外观模式(结构性模式)
  19. install vscode on centos
  20. 微信 audio 获取 duration 为 NaN 的解决方法

热门文章

  1. PostgreSQL各数据类型的内置函数
  2. HTML_本地存储
  3. caffe网络在多线程中无法使用GPU的解决方案 | cpp caffe net run in multiple threads
  4. ETCD:单机单节点
  5. Python 编程语言要掌握的技能之一:善用变量来改善代码质量
  6. 性能测试:深入理解线程数,并发量,TPS,看这一篇就够了
  7. Electron存储简单数据和用户首选项推荐用electron-store
  8. Redis的面试问题总结,面试跳槽必备
  9. Requests小技巧
  10. insertBefore()