amd与cmd笔记

//历史
01全局function模式  可以被污染

02命名空间模式
var  personDel={
del(){},
add(){},
mix(){}
}
也可以被修改  被污染
03 iife模式 立即执行函数
(function(window){
let name=1,
function a(){ console.log(a) }

function b(){ console.log(b) }

                window.module={ name,a,b}

})(window);

        window 暴露出去方法 可以被访问到

        04iife 增强模式  依赖注入  现代模块化的基石

                     (function(window,$){
var a=1;
function b(){ console.log(b)};
window.module1={a,b};
$('body').css('background','red')
})(window,jquery);

        05 现象:

          <script src="test1.js"></script>
<script src="test2.js"></script>
<script src="test3.js"></script>
<script src="test4.js"></script>

<script src="test5.js"></script>

        问题:

                1.一个页面需要引入多个js

                2. 请求过多,依赖模糊,难以维护

        解决:模块化 规范 (commonJs  Amd  Cmd  es6)

CommonJs

        说明:

                1.每个文件都可当做一个模块

                2.在服务端模块的加载时同步加载的

                3.在客户端模块需要提前编译打包处理

        基本语法

                1.暴露模块 :module.exports=value     exports.xxx=value  本质:暴露一个对象--exports

                2.引入模块:require(xxxx)  系统模块 与第三方模块

        实现:

                服务端:nodejs

                浏览器端:commonJs的浏览器端打包工具  browserify

Amd

        说明

                1.As Module Denfineiton 异步模块定义

                2.专门用于浏览器端  模块的加载时异步的

        基本语法

                1. 定义暴露模块  1-1 定义有依赖的模块:

                                                        define(['module1','module2],function(m1,m2){    

                                                                 return 模块         

                                                        })

                                          1-2  定义没有依赖的模块

                                                        define(function(){

                                                            return 模块

                                                        })

                2.引入使用模块   

                                        

                                                        require(['module1','module2],function(m1,m2){    

                                                                 使用模块         

                                                        })

         实现:

                 require.js

                 requirejs.config({

                    baseUrl:'js/',去他下面找

                    paths:{

                            module1:'./modules/module1'

                    }

                 })

                requirejs(['module1'],function(modeule1){            modeule1.方法            })

                <script data-main="/js/app.js"   src="require.js"></script>

    CMD

        

                









  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值