• Javascript模块化编程require.js的用法


    JS模块化工具requirejs教程(一):初识requirejs

    http://www.runoob.com/w3cnote/requirejs-tutorial-1.html

    JS模块化工具requirejs教程(二):基本知识

    http://www.runoob.com/w3cnote/requirejs-tutorial-2.html

    Javascript模块化编程(三):require.js的用法

    http://www.ruanyifeng.com/blog/2012/11/require_js.html

    require js define 函数

    http://blog.csdn.net/u010130282/article/details/52329953

    5. 完整定义

    define('sample3' ,['sample','sample1'],function (sample,sample1) {
      var sample4 = require('sample4');
      return function(){
        alert(sample.name+':'+sample.sayhell());
      } 
    });

    这就是完整定义,有名称,有依赖,有回调,内部还有common的形式引入依赖对象!

    关于define函数的name和require函数的依赖名称之间的关系

    • define(name,[] , callback); 这个name可以省掉,默认是文件名称;当然也可以自定义,一旦我们定义了name,根据源代码我们可以发现define函数内部其实就是把这个name以及依赖模块、回调函数作为一个对象存储在全局的数组当中,也就是 defQueue.push([name,deps,callback]);那么这个name就是这个组件注册的的ID!

    • require([name , name2],callback); 系统首先会在全文检索path中是否对应的路径,如果没有自然把他作为路径拼接在baseUrl上去异步加载这个js文件,加载时从源代码中可以看到 ,var data = getScriptData(evt);返回的 data.id 其实就是name,然后执行contex.completeLoad(node.id),其内部就很清楚了,把define中注册的name和这里得到的name进行比较如果相等就执行。所以道理就是:require 和 define 的 name 必须保证一致!

  • 相关阅读:
    一些端口
    outlook 的微软手册
    目录摘要
    L2TP的包过滤规则
    outlook 的外出时助理程序对外部邮箱不起作用。1个解决办法和另外一个可能性
    用editplus 正则表达式修改联系人表
    Cisco NAT的理解。
    outlook 2003 无法记住密码
    ERD commander 2005的下载地址。
    outlook 2003启用日志记录排除故障。
  • 原文地址:https://www.cnblogs.com/as3lib/p/6664853.html
Copyright © 2020-2023  润新知