RequireJS中定义js模块的方式

web前端项目一大挑战就是烦多的js框架与开发的js代码。传统的开发方式我们需要在html上用<script>标签加载js文件,并且按照依赖关系按顺序加载。
RequireJS框架提供了一种管理js脚本的方式,让我们在定义模块时就声明它需要依赖的其他模块,在使用js模块时让RequireJS自动处理它们的依赖关系。
其他类似的框架还有国产的SeaJS,它使用的CMD模块定义。

定义AMD模块

RequireJS框架下定义的模块需要遵循AMD规范。
定义模块文件js/lib/module.js

define(['dep1', 'dep2'], function (dep1, dep2) {
    //Define the module value by returning a value.
    var module = {};
    moduel.doSomething = function(){
    };
    return module;
});

  • define第一个参数为数组,表示该模块依赖的其他模块列表。
  • 第二个参数是function,形式参数是依赖模块的注入,function内便可以使用这些模块,。
  • function的返回是定义模块的对象。

使用AMD模块

首先定义我们需要用到的模块:

requirejs.config({
    //默认情况下模块所在目录为js/lib
    baseUrl: 'js/lib',
    //当模块id前缀为app时,他便由js/app加载模块文件
    //这里设置的路径是相对与baseUrl的,不要包含.js
    paths: {
        module: 'module'
    }
});

开始业务逻辑:

requirejs(['module'],
  function(module) {
    module.doSomething();
});

业务代码中我们只是用到了module模块,但RequireJS框架帮我们自动加载了所需要的其他依赖模块。

加载非AMD模块

很多时候项目中需要使用一些老代码,它们没有使用AMD定义。这个时候我们就要使用shim加载方式:

require.config({
    shim: {
        'jquery': ['jquery']
    }
});

这样我们就可以使用requirejs(['jquery'], function(){})的方式加载jquery了。

参考文章:

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 原文链接:http://www.cnblogs.com/lvdabao/p/js-modules-develop....
    舌尖上的大胖阅读 4,104评论 0 1
  • 什么是模块化开发? 前端开发中,起初只要在script标签中嵌入几十上百行代码就能实现一些基本的交互效果,后来js...
    半世韶华忆阑珊阅读 3,902评论 0 0
  • 1.几种基本数据类型?复杂数据类型?值类型和引用数据类型?堆栈数据结构? 基本数据类型:Undefined、Nul...
    极乐君阅读 11,023评论 0 106
  • RequireJS是一个非常小巧的JavaScript模块载入框架,是AMD规范最好的实现者之一。最新版本的Req...
    清葉阅读 3,579评论 0 1
  • 当我的声音有了更多含义 当我的眼神开始诉说自己 你是否会收回目光看向我 然后就被我的凝望所吸引 我只想简单的看着你...
    水摇绢阅读 1,711评论 0 0

友情链接更多精彩内容