美文网首页
javascript模块化(AMD)框架required.js使

javascript模块化(AMD)框架required.js使

作者: maige | 来源:发表于2018-01-28 18:43 被阅读0次

公司某项目中使用ruquired.js进行javascript模块化管理,写一个例子,整理下笔记。

Javascript模块化

Javascript模块化三种写法 http://www.ruanyifeng.com/blog/2012/10/javascript_module.html

AMD规范

1、 定义模块

采用特定的define()函数来定义

2、 加载模块

采用require()语句加载模块require([module], callback);

第一个参数[module],是一个数组,里面的成员就是要加载的模块;第二个参数callback,则是加载成功之后的回调函数。例如:

  require(['math'], function (math) {

    math.add(2, 3);

  });

math.add()与math模块加载不是同步的,浏览器不会发生假死。所以很显然,AMD比较适合浏览器环境。

require.js实现了AMD规范。

require.js例子

我的Github地址:https://github.com/oldmaimai/requirejsdemo

定义模块A,moduleA.js

/*
function fun1(){
  alert("it works");
}

fun1();
*/

/*
示例1:使用普通方式创建模块:使用了块作用域来申明function防止污染全局变量
*/
/*
(function(){
  var add = function (x,y){
    return x+y;
  };
  return {
    add: add
  };
})()
*/

define(function (){
  var add = function (x,y){
    return x+y;
  };
  return {
    add: add
  };
});

定义模块B,moduleB.js

/*
实例2:使用AMD规范创建模块:define方式来创建模块,同时,该模块还依赖moduleA
*/
define(['moduleA'], function(moduleA){
  function add(x, y){
        return moduleA.add(x, y);
  }
  return {
     add : add
  };
});

模块使用方式1:

直接引用require.js,用require的方式加载


<!DOCTYPE html>
<html>
    <head>
        <script type="text/javascript" src="require.js"></script>
        <script type="text/javascript">
            // 本地加载方式1
            require(["moduleA"]);
            
            // 本地加载方式2
            require(["moduleB"],function(mb){
                alert(mb.add(1, 1));
            })
        </script>
    </head>
    <body>
      <span>body</span>
    </body>
</html>

模块使用方式2

异步加载requires.js,使用主模块方式,我们项目中使用这种

首先定义主模块main.js

//主模块依赖jquery、moduleB这2个模块
alert("主模块加载成功!");
require(['jquery-1.10.2', 'moduleB'], function ($, b){
    // some code here
        alert(b.add(2, 2));
  });

html使用main

<!DOCTYPE html>
<html>
    <head>
        <!--
        1.async属性表明这个文件需要异步加载,避免网页失去响应。IE不支持这个属性,只支持defer,所以把defer也写上。  
        2.data-main属性的作用是,指定网页程序的主模块。这个文件会第一个被require.js加载。
          由于require.js默认的文件后缀名是js,所以可以把main.js简写成main
        -->
        <script src="require.js" defer async="true" data-main="main"></script>
    </head>
    <body>
      <span>本例子展示了1、如何定义模块 2、如何引入模块</span>
    </body>
</html>

相关文章

  • javascript模块化(AMD)框架required.js使

    公司某项目中使用ruquired.js进行javascript模块化管理,写一个例子,整理下笔记。 Javascr...

  • JS模块开发学习资源

    Javascript模块化编程(一):模块的写法Javascript模块化编程(二):AMD规范Javascrip...

  • ECMAScript6:模块化编程

    模块 The old way 传统JavaScript有相当多的模块化方案(AMD,CommonJS,UMD等)。...

  • js 模块化总结

    目前主流的模块化框架有 commonJS / amd / cmd / umd / es module ,动态引用时...

  • babel的使用

    模块化分类 CMD/AMD : 适用于浏览器的JavaScript的模块化 CommonJS : 适用于服务器的J...

  • javascript模块化比较

    当前有以下几种JavaScript模块化开发方式: 标签 CommonJS AMD and 其他 ES6 modu...

  • 前端专业技能储备

    JavaScript相关 原型链与作用域 闭包 模块化(amd/cmd/umd/es6 module) 跨域多...

  • SystemJS笔记

    简介 JavaScript模块化有一些规范,如CommonJS、AMD、CMD、ES6 Module,可以看看这篇...

  • js模块化

    js的模块化大致分为4种规范 amd cmd commonjs 和es6模块化 1.amd规范 amd规范又叫异步...

  • Javascript高级模块化

    RequireJS 是一个非常小巧的 javascript 模块载入框架,是AMD(Asynchronous Mo...

网友评论

      本文标题:javascript模块化(AMD)框架required.js使

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