美文网首页
【RequireJS】基础知识总结

【RequireJS】基础知识总结

作者: lndyzwdxhs | 来源:发表于2017-09-23 17:05 被阅读9次

痛点: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()配置

  • baseUrl——用于加载模块的根路径。

  • paths——用于映射不存在根路径下面的模块路径。

  • shims——配置在脚本/模块外面并没有使用RequireJS的函数依赖并且初始化函数。假设underscore并没有使用 RequireJS定义,但是你还是想通过RequireJS来使用它,那么你就需要在配置中把它定义为一个shim。

    • deps——加载依赖关系数组
    • exports——转换成requirejs格式后,模块的名称
require.config({
    baseUrl : 'js',
    paths : {
        pb : '../lib'                  // 其实就是把出现"pb"的地方替换成"../lib"
    },
    shim : {
        'world' : {
            deps : ['animalWorld'],
            exports : 'world'
        }
    }
});

0x03 define()和require()函数

define()

该函数用于定义模块。

接收3个参数:

  • 第一个参数是模块名,以字符串表示,可以省略,省略后默认模块名为该js文件的名称,一般情况下会省略;
  • 第二个参数是依赖的模块名,以字符串数组表示,也可以省略;
  • 第三个参数是回调函数,定义模块的具体代码逻辑。
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)或扫描下方二维码关注,我们将持续搜寻程序员必备基础技能包提供给大家。


相关文章

  • 【RequireJS】基础知识总结

    痛点:RequireJs出现之前,我们将一些js组件放到不同的文件,然后在html文件中通过script标签来引入...

  • requireJS总结

    requireJS遵循异步模块定义(Asynchronous Module Definition)实现项目中的备忘...

  • RequireJS总结

    RequireJS总结 亲爱的孟良,我搞不懂你为什么记不住怎么写 怎么用html页面引入 data-main中写的...

  • requirejs 总结

    下面是我做的一个requirejs一个小的案例,没有啥技术含量,就是把不同情况下的方法说了一下,以后有时间再给大家更新

  • requireJS 探索(一)

    什么是requireJS? requireJS发挥的作用 简单总结起来就2点 改善了用户体验,它使js文件异步加载...

  • Requirejs常用配置和应用

    requirejs、require方法冲突 如果加载了多个requirejs脚本,每个requirejs会判断是否...

  • 模块化

    RequireJS官网:www.requirejs.org 为什么使用RequireJS 1、有效的防止变量冲突2...

  • RequireJS模块化

    RequireJS官网:www.requirejs.org 为什么使用RequireJS1、有效的防止变量冲突2、...

  • requirejs使用和总结

    一、为什么要用require.js? 最早的时候,所有Javascript代码都写在一个文件里面,只要加载这一个文...

  • requirejs使用和总结

    一、为什么要用require.js? 最早的时候,所有Javascript代码都写在一个文件里面,只要加载这一个文...

网友评论

      本文标题:【RequireJS】基础知识总结

      本文链接:https://www.haomeiwen.com/subject/frvcextx.html