1.为什么要模块化?
- 在网页开发的早期,js制作作为一种脚本语言,做一些简单的表单验证或动画实现等,那个时候代码还是很少的。
- 那个时候的代码是怎么写的呢?直接将代码写在<script>标签中即可
- 随着ajax异步请求的出现,慢慢形成了前后端的分离
- 客户端需要完成的事情越来越多,代码量也是与日俱增。
- 为了应对代码量的剧增,我们通常会将代码组织在多个js文件中,进行维护。
- 但是这种维护方式,依然不能避免一些灾难性的问题
在这里插入图片描述
注:主要就是重名问题!!!!
2.解决方案——匿名函数
(function(){
var flag= true
})()
注:但是第二个问题,就是复用性降低。所以出现了es5后面的模块雏形
var ModuleA = (function(){
//1.定义一个对象
var obj = {}
//2.在对象内部添加变量和方法
obj.flag = true
obj.myFunc = function(info){
console.log(info);
}
//3.将对象返回
return obj
})()
- 我们做了什么事情呢?
- 非常简单,在匿名函数内部,定义一个对象。
- 给对象添加各种需要暴露到外面的属性和方法(不需要暴露的直接定义即可)。
- 最后将这个对象返回,并且在外面使用了一个MoudleA接受
3.Vue模块化
常见的html" class="superseo">模块化规范:CommonJS、AMD、CMD,也有ES6的Modules