這兩個輕量級的庫合起來使用確實能夠方便的構建大型應用程式。requirejs填補了前端模組化開發的空缺,backbone採用mvc的分層結構很好的將程式各個部分解耦。
backbone目前不支援amd(曾經支援過),那麼它只能作為普通的js檔案使用。它全域性的標示符是backbone,它還依賴於underscore,underscore的全域性標示是下劃線(_)。
因此,當我們使用amd方式寫的模組中使用backbone時,得確保underscore和backbone已經載入了。
requirejs 2.0後提供了乙個shim引數很好的解決了該問題。
示例目錄
js目錄中有underscore.js,backbone.js。其中cache.js不依賴於backbone,baserouter.js依賴。
index.html如下?1
2345
6789
1011
1213
1415
1617
1819
2021
2223
<
html
>
<
head
>
<
title
>requirejs和backbone整合
<
meta
charset
=
"utf-8"
/>
<
script
src
=
"require.js"
>
<
script
>
require.config(
}
});
require(['baserouter'], function(baserouter) );
<
body
>
注意,require.config配置了shim引數,shim引數這裡有介紹。
baserouter內就可以把backbone當成amd模組來使用了。?1
2345
6define([
'backbone'
,
'cache'
],
function
(backbone, cache);
})
把目錄rb放到apache或其它web伺服器上,訪問index.html。
相關:rb-2012-6-8.zip
RequireJS和Backbone的整合
這兩個輕量級的庫合起來使用確實能夠方便的構建大型應用程式。requirejs填補了前端模組化開發的空缺,backbone採用mvc的分層結構很好的將程式各個部分解耦。backbone目前不支援amd 曾經支援過 那麼它只能作為普通的js檔案使用。它全域性的標示符是backbone,它還依賴於unde...
Requirejs常用配置和應用
requirejs require方法衝突 如果載入了多個requirejs指令碼,每個requirejs會判斷是否瀏覽器已經實現了require和define方法。如果瀏覽器已經自帶require和define方法,或者之前已經有乙個requirejs指令碼執行,那麼這個requirejs就會立刻...
關於requirejs和grunt壓縮合併是否矛盾
requirejs主要是為了模組化開發,這樣帶來的好處不言而喻。但是分成多個js檔案增加了請求數,那麼就要用到合併壓縮。合併壓縮了原來的許多獨立的js模組,那requirejs又是怎麼衝壓縮的檔案中找到各個獨立的模組進行載入的呢,感覺兩者有點衝突,這個問題想了很久也假想了很多可能。在知乎上找到了乙個...