美文网首页
RequireJS模块化操作

RequireJS模块化操作

作者: sdcV | 来源:发表于2017-07-12 19:56 被阅读15次
一、define 函数定义模块
  • 可重用的代码块(模块)有特定的使用目的或行为。我们可以使用RequireJS提供的define()函数来定义模块。三个参数分别为本模块命名的值、本模块的各个依赖项、模块自身代码
    define(
    moduleName, //可选,如果不写,则默认为本模块所在文件的文件名
    dependencies, //可选,一个数组,此数组包含此文件所需的各个依赖项
    function (parameters) {
    //各个依赖项成功加载后所运行的函数
    // parameters中包含的各个值来自于依赖项,与dependencies参数中的各个依赖项形成对应关系
    }
    );
    例如:define(["lib/jquery-1.10.2"], function($){
    //这里放的是jquery加载完成后要执行的模块代码
    // define函数第一个参数指出jquery库的位置,匿名函数中的参数($)与之对应。
    });
    模块别名配置:
    require.config({
    paths: {
    "jquery": "lib/jquery-1.10.2"
    }
    });//现在就可以用"jquery"作为依赖项名称
二、require 加载依赖
  • define适合于声明模块便于以后使用,require适用于不需要建立可重用的模块、只需加载各个依赖直接执行的场合。两者的使用方法一样
    例如:require(["lib/jquery-1.10.2"], function($){
    //这里放的是jquery加载完成后要执行的模块代码
    // reuire函数第一个参数指出jquery库的位置,匿名函数中的参数($)与之对应。
    });
三、加载非规范的模块
  • 理论上,require.js加载的模块,必须是按照AMD规范、用define()函数定义的模块。但是实际上,虽然已经有一部分流行的函数库(比如jQuery)符合AMD规范,更多的库并不符合。那么,require.js是否能够加载非规范的模块呢?
    回答是可以的。
    这样的模块在用require()加载之前,要先用require.config()方法,定义它们的一些特征。
    举例来说,underscore和backbone这两个库,都没有采用AMD规范编写。如果要加载它们的话,必须先定义它们的特征。
      
    require.config({ 
    shim: {
    'underscore':{
    exports: '_'
    },
    'backbone': {
    deps: ['underscore', 'jquery'],
    exports: 'Backbone'
    }
    }
    });
    配置不兼容的模块。具体来说,每个模块要定义(1)exports值(输出的变量名),表明这个模块外部调用时的名称;(2)deps数组,表明该模块的依赖性。

相关文章

网友评论

      本文标题:RequireJS模块化操作

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