Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[js] 第39天 说说你对模块化的理解 #146

Open
haizhilin2013 opened this issue May 24, 2019 · 14 comments
Open

[js] 第39天 说说你对模块化的理解 #146

haizhilin2013 opened this issue May 24, 2019 · 14 comments
Labels
js JavaScript

Comments

@haizhilin2013
Copy link
Collaborator

第39天 说说你对模块化的理解

@haizhilin2013 haizhilin2013 added the js JavaScript label May 24, 2019
@wenyejie
Copy link

非常非常棒的一种开发模式,
大大的解放了前端的生产力
利于项目的可维护和可拓展
简直就是傻屌界的一股清流
配合工具使用让你效率起飞

@rocky-191
Copy link

代码抽离重用,模块化开发,多人合作。早期的IIFE方式,AMD,CMD,到今天的export/import,node端的commonjs

@cleverboy32
Copy link

@tzjoke
Copy link

tzjoke commented May 28, 2019

AMD(browser+async) CommonJS(server+sync)
es6 import/export

@myprelude
Copy link

  • AMD CMD
    AMD代表:requireJS ---- 依赖前置
    CMD代表:seaJS ---- 依赖就近原则
  • ES Module
    import / export ---- js标准化 可以异步加载
  • CommonJs
    Module.export/ exports require() ---- 服务端的js模块化

模块化就不得不说明下依赖的循环加载,不同的模块化处理的方式不一样,如果感谢去可以开一个issue @haizhilin2013

@Konata9
Copy link

Konata9 commented Sep 17, 2019

模块化解决了代码污染的问题。提高了代码的重复率以及让多人合作编程了可能。

模块化分为

  • AMD: require.js 为代表,依赖前置,一律先加载再使用。
  • CMD: sea.js 为代表,依赖就近原则。
  • UMD: 同时支持 AMD 和 CMD 方法。
  • ES6 import/export

@censek
Copy link

censek commented Nov 7, 2019

exports

@13168335674
Copy link

AMD: require.js 为代表,依赖前置,一律先加载再使用。
CMD: sea.js 为代表,依赖就近原则。
UMD: 兼容AMD和commonJS规范的同时,还兼容全局引用的方式。
ES6 import/export

@waterkitten
Copy link

更多是一种开发的共识规范,提高代码的复用性和让多人开发成为可能,具体参考vue等框架(or微信小程序

@Alex-Li2018
Copy link

AMD: require.js 为代表,依赖前置,一律先加载再使用。
CMD: sea.js 为代表,依赖就近原则。
UMD: 兼容AMD和commonJS规范的同时,还兼容全局引用的方式。
ES6 import/export

@bozaigao
Copy link

模块化在工程化实践中很重要,所谓模块化即使把重复的代码剥离出来供其他项目反复使用,提高开发效率的一种方式,CommonJS(别名cjs)、AMD(浏览器优先的异步加载模块,依赖前置)、CMD(异步加载模块,依赖就近原则)、UMD(基于AMD和CommonJS之间的加载方式)、ES6官方模块引用标准,关于前端模块的相关概念和区别可以参考我的博客:https://www.bozaigao.net/2020/07/21/js_standard/

@MrZ2019
Copy link

MrZ2019 commented Oct 29, 2020

AMD: require.js 为代表,依赖前置,一律先加载再使用。
CMD: sea.js 为代表,依赖就近原则。
UMD: 兼容AMD和commonJS规范的同时,还兼容全局引用的方式。
ES6 import/export

@flashyy
Copy link

flashyy commented Feb 20, 2022

将一个复杂的程序依据一定的规则(规范)封装成几个块(文件), 并进行组合在一起,块的内部数据/实现是私有的, 只是向外部暴露一些接口(方法)与外部其它模块通信。避免命名冲突(减少命名空间污染),更好的分离, 按需加载,更高复用性,高可维护性。
CommonJS
AMD
CMD
ES6

@xiaoqiangz
Copy link

模块化: 是一种非常好的开发模式,抽离公共代码、模块化开发,多人合作,按需加载 都是一种好的提现。
AMD: require.js,依赖前置,一律先加载再使用
CMD: ser.js为代码,依赖就近原则
UMD: 兼容AMD和CommonJS规范,也兼容全局引用的方式
ES6: import/export

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
js JavaScript
Projects
None yet
Development

No branches or pull requests