`

AMD规范和RequireJS模块化

AMD 
阅读更多
什么是AMD模式?
define和require两个定义模块调用模块的方法合称为AMD模式
   **用于浏览器环境,允许异步加载模块,也可以根据需要动态加载模块。

1.引入require.js到网页,网页中就能进行模块化编程了

<p class="pp" style="display:none">default hidden</p>
<script data-main="javascripts/test.js" src="/components/requirejs/require.js"></script>

data-main加载主文件,指定主代码所在的脚本文件,不可省略。

2.定义模块
1)独立定义模块:不依赖其他模块的模块
define(function (){
    return {
        add: function (a, b) {
            return a + b;
        }
    };
});


2)非独立模块:依赖其他模块的模块
//第一个参数是数组:成员是当前模块依赖的模块
//第二个参数是函数:参数与数组成员一一对应,前面数组所有成员加载成功后才被调用。返回一个对象供其他模块调用。define(['jquery'],function(jquery){
    return {//函数返回值就是输出的模块
        showme:function(el){
            $(el).show();
        }
    };
});


3.主模块require调用模块

//第一个参数是数组:表示依赖关系
require(['config','math/math','math/show'], function (config,math,show) {
    debugger;
    console.log(math.add(1,2));
    show.showme('.pp');
});


4.配置require.js config方法
  1)paths:指定各个模块的位置。
  2)baseUrl:指定本地模块位置的基准目录。
  3)shim:帮助require.js加载非AMD规范的库

require.config({
    paths : {
        jquery : '../components/jquery/dist/jquery',
        angular: '../components/angular/angular'
    }
   shim : {
        angular: {
            exports: 'angular'
        }
//backbone 依赖于underscore,输出符号为'Backbone'
        backbone:{
            deps:['underscore'],
            exports:'Backbone'
        }
        underscore:{
            exports:'_'
        }
   }
});
分享到:
评论

相关推荐

    模块编程AMD规范

    RequireJs模块化编程,CAD的初级介绍,符合CAD规范模块的定义和导入,语法及依赖项的初步演示。。。。。。。。。

    js模块化规范介绍ppt

    js模块系统介绍的ppt,简要介绍js现有的几个模块规范,包括commonJS模块规范,amd,cmd,es6模块系统。并详细对比seaJS和requireJS的异同

    ES6模块化的import和export用法方法总结

    ES6之前已经出现了js模块加载的方案,最主要的是CommonJS和AMD规范。commonjs主要应用于服务器,实现同步加载,如nodejs。AMD规范应用于浏览器,如requirejs,为异步加载。同时还有CMD规范,为同步加载方案如seaJS。...

    ES6使用export和import实现模块化的方法

    在ES6前, 前端就使用RequireJS或者seaJS实现模块化, requireJS是基于AMD规范的模块化库, 而像seaJS是基于CMD规范的模块化库, 两者都是为了为了推广前端模块化的工具, 更多有关AMD和CMD的区别, 后面参考给了...

    ES6新特性:使用export和import实现模块化详解

    在ES6前, 前端就使用RequireJS或者seaJS实现模块化, requireJS是基于AMD规范的模块化库, 而像seaJS是基于CMD规范的模块化库, 两者都是为了为了推广前端模块化的工具, 更多有关AMD和CMD的区别, 后面参考给了...

    ES6中module模块化开发实例浅析

    之前,模块化开发一直是由第三方库来模拟的,比较知名的有AMD规范和CMD规范。 两个规范分别对应requirejs和seajs。 而现在,ES6提出了自己的模块化统一标准。 一个ES6的模块是一个包含了js代码的文件。ES6里没有所谓...

    Require-Seajs:js模块化

    模块化js常用的工具Requirejs和Seajs, Requirejs是按照AMD的规范来定义模块的,Seajs是按照CMD的规范来定义模块的.Requirejs 与 Seajs 的最大区别:执行模块的机制不同RequireJS对模块的态度是预执行,也就是所依赖...

    在ASP.NET MVC项目中使用RequireJS库的用法示例

    RequireJS 是一个前端模块化开发的流行工具,本身是一个Javascript的库文件,即require.js 。...从模块化划分的规则来区分,主要分为AMD、CMD两类,dojo、require.js 遵从前者,而sea.js 依循CMD规范。 require

    SeaJS 与 RequireJS 的差异对比

    随着 W3C 等规范、以及浏览器的飞速发展,前端的模块化开发会逐步成为基础设施。一切终究都会成为历史,未来会更好。”——引用玉伯原文最后一段话,我个人也非常赞同。既然谈到了“未来”,我个人认为:前端 js ...

    javascript模块化简单解析

    AMD是RequireJS在推广过程中对模块定义的规范化产出。 异步加载模块,依赖前置,提前执行。 Define定义模块 define([‘require’,’foo’],function(){return}); Require加载模块(依赖前置) require([‘foo’,’bar...

    第一次接触JS require.js模块化工具

    RequireJS是一个非常小巧的JavaScript模块载入框架,是AMD规范最好的实现者之一。最新版本的RequireJS压缩后只有14K,堪称非常轻量。它还同时可以和其他的框架协同工作,使用RequireJS必将使您的前端代码质量得以...

    project-template:iustu前端项目模板

    前端项目模板 ...而对于JavaScript,我们推荐使用AMD规范(requireJS)来对代码进行组织,因此我们默认在项目的开发工具中引入了grunt-contrib-requirejs,便于我们在将来使用r.js来对项目进行优化。

    一篇文章掌握RequireJS常用知识

    一篇文章掌握RequireJS常用知识,通过本文,你可以对模块化开发和AMD规范有一个较直观的认识,并详细地学习RequireJS这个模块化开发工具的常见用法,感兴趣的小伙伴们可以参考一下

    通过实例解析js简易模块加载器

    主要有AMD规范(随requirejs诞生而普及),CMD规范(随seajs的出现而普及),commonjs(主要用于node,并不适合前端)。至于以上几种规范的异同,无耻的我在这里就不多费口水了,请还不了解的亲们自行去找google爸爸...

    modulejs_demo:js模块化对比

    modulejs_demo js模块化对比 主要通过AMD规范实现的requirejs和CMD规范实现的seajs来比较两种模式的区别。 参考: 可以直接通过node http.js运行http-server

    minjector:Minjector 为浏览器和 Node.js 实现了一个类似 AMD 的模块加载器

    Minjector 为浏览器和 Node.js 实现了一个类似 AMD 的模块加载器。 真正的 Node.js 不需要 AMD 加载器。 尽管如此,它还是支持编写浏览器和 Nodes.js 所需的模块。 Node.js 的性能缺陷并不多,因为所有模块仍然被...

    javascript高级模块化require.js的具体使用方法

    RequireJS是一个非常小巧的javascript模块载入框架,是AMD(Asynchronous Module Definition,异步模块加载机制)规范最好的实现之一。最新版的requireJS压缩后只有14k,堪称非常轻量。它还同时可以和其他的框架协调...

    浅谈angular懒加载的一些坑

    项目使用grunt打包根据AMD规范,使用grunt-contrib-requirejs来压缩合并模块,同时用ocLazyLoad来完成angular模块的懒加载. 项目进程: 模块打包 项目中代码基本按照AMD规范来编写,使用grunt-c

    looveu:现代前端开发人员的现代框架

    looveu 基于requirejs的,符合AMD规范的一个模块化,js脚手架框架

    webpack教程.zip

    webpack教程.zip webpack是现在最流行的前端自动化打包工具 模块中还是用的AMD规范,但我并没有引入 requirejs 源码,因为首先 webpack 原生支持了 CommonJs 、AMD 等模块风格,编译时会自动识别进行处理

Global site tag (gtag.js) - Google Analytics