require.js学习笔记

require.js主要解决两个问题:
① 实现javascript异步加载,避免页面假死
② 管理模块之间的依赖性,便于代码编写与维护

1、首先连接require.js文件
为了避免引起阻塞可以放在底部

<script data-main="js/config" src="http://cdn.bootcss.com/require.js/2.2.0/require.js"></script>

data-main有两个作用:
(1)require文件加载完毕之后立即执行data-main的内容
(2)data-main的路径将作为js文件默认目录,可以通过RequireJS config手动设置中baseUrl参数修改

*通过require引入js文件不需要写后缀名,当然也不能写后缀名

2、配置文件-config.js

config.js

require.config({
    baseUrl:'js',
    paths : {
        jquery: ["http://cdn.bootcss.com/jquery/3.1.0/jquery",'jquery'],
        zch : "app/zch"
    }
});

config.js作为配置文件,统一js文件引入的入口,paths参数可以设置一个简短的字段对应相应的需要引入的文件,引入的文件可以以数组的形式,比如上面的jquery,如果外部链接引入失败将会自动引入内部文件

3、define-定义模块
写在单个js文件里面,分为有依赖和没有依赖

a.js

//无依赖
//如果一个模块仅含值对,没有任何依赖,则在define()中直接定义这些值
define({
    add:function (x,y){
        return x+y;
    },
    minus:function(x,y){
        return x-y;
    }
});

b.js

//有依赖
define(["jquery"], function($) {
    var tt=$('.tt').text();
    return {
            add:function (x,y){
                var he=x+y;
                return "和的值为:"+he;
            },
            minus:function(x,y){
                var cha=x-y;
                return "差的值为:"+cha;
            },
            display:function(){
                console.log(tt);
            }
    };
});

4、加载模块

require(['jquery','a','zch'],function($,a,z){
    $('.menu ul li:odd').css('background','red');
    a.display();
    var num2=a.add(10,20);
    console.log(num2);
});

require加载模块有两个参数,第一个是数组,就是要加载模块的名称,在配置文件和模板文件里都是这个格式,如果在配置文件里那么数组里面的名字就是paths里面定义好的,如果没有定义好就是相对应的js文件的名称,第二个就是回调函数了,加载的模块会以参数形式传入该函数,从而在回调函数内部就可以使用这些模块;重复引用的模块只会加载一个

5、shim
require.js加载的模块,必须是按照AMD规范、用define()函数定义的模块。但是实际上,虽然已经有一部分流行的函数库(比如jQuery)符合AMD规范,这样的模块在用require()加载之前,要先用require.config()方法,定义它们的一些特征。

//config.js
require.config({
    baseUrl:'js',

    paths : {
        jquery: "http://cdn.bootcss.com/jquery/3.1.0/jquery",
        zch : "app/zch"
    },
    shim:{
        'c':{
            deps:['jquery']
        }
    }
});
require(['c'],function(c){
    /*$('.menu ul li:odd').css('background','red');
    a.display();
    var num2=a.add(10,20);
    console.log(num2);*/
    console.log(c.name);
});
//c.js
define({
    name:'namanma'
})
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

太羽

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值