zoukankan      html  css  js  c++  java
  • sea.js学习笔记

    在 CMD 规范中,一个模块就是一个文件

    • define(fatctory)是一个全局函数
    • define接受factory参数,factory可以是一个函数,也可以是一个对象或者字符串。
      • factory为函数时,表示是模块的构造方法,执行该构造方法,可以得到模块向外提供的接口。factory方法在执行时,默认会传递三个参数:require、exports和module:如下

     define(function(require,exports,module){

      //模块代码

    });    

        • require是factory的第一个参数
        • require(id)是一个方法,接受模块标识作为唯一参数,用来获取其他模块提供的接口。

    define(function(require,exports){

      //获取模块接口

      var a = require('./a');

      //调用模块a的方法

      a.dosometiong();

    })

          • require.async(id,callback)----方法用来在模块内部异步加载,并在加载完成后执行指定回调。callback参数可选。

    define(function(require,exports,module){

      //异步加载一个模块,在加载完成时,执行回调

      require.async('./b',function(b){

      b.doSomething();

    })

      //异步加载多个模块,在加载完成时,执行回调

      require.async(['./c','./b'],function(c,b){

      c.doSomething();

      b.doSomething();

    })

    注意require 是同步往下执行,require.async 则是异步回调执行。require.async 一般用来加载可延迟异步加载的模块。

          • require.resolve(id)略
        • exports 是一个对象,用来向外提供模块接口。
        • 除了给 exports 对象增加成员,还可以使用 return 直接向外提供接口。(略)
        • modules是一个额对象,上面存储了与当前模块相关联的一些属性和方法。(略)

    define(function(require,exports){

    //对外提供foo属性

    exports.foo = 'bar';

    //对外提供doSomgthion方法

    exports.doSomething = function(){};

    })    

        • 除了给 exports 对象增加成员,还可以使用 return 直接向外提供接口。
    • define也可以接受两个以上参数。字符串id表示模块标识,数组deps是模块依赖。比如

     define('hello',[jquery],funtion(require,exports,module){

      //模块代码

    });

       注意:id 和 deps 参数可以省略。省略时,可以通过构建工具自动生成。



    模块系统的启动

    在 Sea.js 里,要启动模块系统:

    <script src="path/to/sea.js"></script>

    <script>

    seajs.use('./main');

    </script>

    • seajs.use用来在页面中加载模块
    • seajs.use(id.callback)--通过use方法,可以在页面中加载任意模块:

    //加载模块main,并在记载完成时,执行指定回调

    seajs.use('./main',function(main){

      main.init();

    });

    • use方法还可以一次加载多个模块:

    //并发记载模块a和模块b,并在都加载完成时,执行指定回调

    seajs.use(['./a','./b'],function(a,b){

      a.init();

      b.init();

    })

      callback 参数可选,省略时,表示无需回调。


      配置文件

    • 配置可以直接写在 html 页面上,也可以独立出来成为一个文件。
    // seajs 的简单配置
    seajs.config({
      base: "../sea-modules/",
      alias: {
        "jquery": "jquery/jquery/1.10.1/jquery.js"
      }
    })
    // 加载入口模块
    seajs.use("../static/hello/src/main")
     

       独立成一个文件时,一般通过 script 标签在页面中同步引入。

  • 相关阅读:
    Linux常用命令-centos
    USACO 2006 Open, Problem. The Country Fair 动态规划
    USACO 2007 March Contest, Silver Problem 1. Cow Traffic
    USACO 2007 December Contest, Silver Problem 2. Building Roads Kruskal最小生成树算法
    USACO 2015 February Contest, Silver Problem 3. Superbull Prim最小生成树算法
    LG-P2804 神秘数字/LG-P1196 火柴排队 归并排序, 逆序对
    数据结构 并查集
    浴谷国庆集训 对拍
    1999 NOIP 回文数
    2010 NOIP 普及组 第3题 导弹拦截
  • 原文地址:https://www.cnblogs.com/limin-cn/p/4071259.html
Copyright © 2011-2022 走看看