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 函數(shù)
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()); } });這就是完整定義,有名稱,有依賴,有回調(diào),內(nèi)部還有common的形式引入依賴對象!
關(guān)于define函數(shù)的name和require函數(shù)的依賴名稱之間的關(guān)系
-
define(name,[] , callback); 這個name可以省掉,默認(rèn)是文件名稱;當(dāng)然也可以自定義,一旦我們定義了name,根據(jù)源代碼我們可以發(fā)現(xiàn)define函數(shù)內(nèi)部其實就是把這個name以及依賴模塊、回調(diào)函數(shù)作為一個對象存儲在全局的數(shù)組當(dāng)中,也就是 defQueue.push([name,deps,callback]);那么這個name就是這個組件注冊的的ID!
-
require([name , name2],callback); 系統(tǒng)首先會在全文檢索path中是否對應(yīng)的路徑,如果沒有自然把他作為路徑拼接在baseUrl上去異步加載這個js文件,加載時從源代碼中可以看到 ,var data = getScriptData(evt);返回的 data.id 其實就是name,然后執(zhí)行contex.completeLoad(node.id),其內(nèi)部就很清楚了,把define中注冊的name和這里得到的name進行比較如果相等就執(zhí)行。所以道理就是:require 和 define 的 name 必須保證一致!
總結(jié)
以上是生活随笔為你收集整理的Javascript模块化编程require.js的用法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Oracle PL/SQL编程之过程
- 下一篇: PHP结合Ueditor并修改图片上传路