【RequireJS】基础知识总结

2017-09-23  本文已影响9人  lndyzwdxhs

痛点:RequireJs出现之前,我们将一些js组件放到不同的文件,然后在html文件中通过script标签来引入,如果几个组件有依赖关系,那就得非常小心的排列script标签的顺序,将被依赖的js文件放到前面,否则会报各种undefined的错误。

口诀:一个属性,一个配置,两个函数

0x01 data-main属性

// index.html
<script src="/js/require.js"></script>
<script src="/js/app.js"></script> 
<script src="/js/require.js" data-main="/js/app.js"></script> //使用data-main属性

// app.js
require(['grass'], function(grass) {
     console.log('grass')
});

如果不使用data-main属性,直接使用script标签引入js文件,app.js在加载依赖模块grass.js的时候就会在index.html同级的目录下找,如果使用data-main属性,就会在/js/目录下找,即和app.js同级的目录下。

0x02 require.config()配置

require.config({
    baseUrl : 'js',
    paths : {
        pb : '../lib'                  // 其实就是把出现"pb"的地方替换成"../lib"
    },
    shim : {
        'world' : {
            deps : ['animalWorld'],
            exports : 'world'
        }
    }
});

0x03 define()和require()函数

define()

该函数用于定义模块。

接收3个参数:

define('caoshuai', ['jquery', 'yangliu'], function($, yangliu) {
    return {
        f_test : function(strr) {
            console.log(strr);
        }
    }
});

require()

该函数用于加载/调用定义好的模块,可以是define()函数定义的,也可以是shim转换的。

接收2个参数:

require(['caoshuai', 'yangliu'], function(caoshuai, yangliu) {
    console.log('require moudle caoshuai yangliu')
});

欢迎关注微信公众号(coder0x00)或扫描下方二维码关注,我们将持续搜寻程序员必备基础技能包提供给大家。


上一篇 下一篇

猜你喜欢

热点阅读