require的基础使用(二)

前文已经讲了 入口文件:

通过给引入requirejs时的script标签添加data-main属性值,那么requirejs就会自动加载该文件(模块),可以通过该文件来进行访问其他的模块,通过给引入requirejs时的script标签添加data-main属性值,那么requirejs就会自动加载该文件(模块),可以通过该文件来进行访问其他的模块

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

也介绍了AMD规范

如何检测第三方库是否支持AMD规范?

查看源代码,看看是否有以下内容?如果有,说明支持AMD规范,如果没有说明不支持,查看源代码,看看是否有以下内容?如果有,说明支持AMD规范,如果没有说明不支持

if (typeof define === "function" && define.amd) {}

路径(加载模块时遵循的规则)

  • 如果没有入口文件,加载模块时的路径以引入requirejs时的html文件的路径为准(优先级最低)

  • 如果有入口文件,所有的加载模块的路径以入口文件所在目录为准(优先级次高)

  • 通过配置来自定义路径(优先级最高)

eg:

require.config({

    //这里的baseUrl还是相对于html文件
    baseUrl:"js"
})

那么所有的模块的基础路径就是js文件夹,再相对于js文件夹给出最终路径。

配置常用的模块路径(比如:jquery/arttemplate)

require.config({
    baseUrl:"./lib",
    paths:{
        //路径不需要.js后缀,最终该文件的路径将会和baseUrl拼接,也就是:"./lib/js/jquery-2.1.4"
        jquery:"js/jquery-2.1.4"
    }
})
//a.js文件中
define(["jquery"],function($){
    //这里请求的jquery也就是去上面paths中设置的jquery进行查找,也就是:"./lib/js/jquery-2.1.4"
})

如果一个js文件不支持AMD这种模块定义规范(比如bootstrap.js),但是它又依赖于其他(比如jquery),通过以下方式来解决

  • ☆☆☆shim只是适用于第三方模块☆☆☆

require.config({
    baseUrl:"./lib",
    paths:{
        //路径不需要.js后缀,最终该文件的路径将会和baseUrl拼接,也就是:"./lib/js/jquery-2.1.4"
        jquery:"js/jquery-2.1.4",
        bootstrap:"assets/bootstrap/bootstrap"
    },
    shim:{
        //这里的bootstrap就是上面的paths中的bootstrap
        bootstrap:{
            //这样在请求bootstrap的时候会自动去请求jquery模块
            deps:["jquery"] //这里的"jquery"也是上面paths中的jquery
        }
    }
})


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值