require.js data-main主模組使用
在如何載入require.js檔案介紹瞭如何載入require.js檔案。
當require.js檔案載入完畢之後,就可以開始它的模組管理工作,看一段程式碼:
[HTML] 純文字檢視 複製程式碼<script src="js/require.js" data-main="js/main"></script>
require.js在載入的時候會檢查data-main屬性,當載入完畢,data-main屬性規定的js檔案會第一個被require.js載入並執行。由於require.js預設的檔案字尾名是js,所以可以把main.js簡寫成main。
假設main.js程式碼如下:
[JavaScript] 純文字檢視 複製程式碼console.log("螞蟻部落")
上面的程式碼沒有任何的依賴,也就沒有必要使用require.js,下面再來看一個有依賴關係的:
[JavaScript] 純文字檢視 複製程式碼require(['moduleA', 'moduleB', 'moduleC'], function (moduleA, moduleB, moduleC){ // 程式碼 });
require()方法具有兩個引數,下面分別做一下介紹:
(1).第一個引數是陣列,每一個元素都是所依賴的模組。
(2).第二個引數是回撥函式,依賴模組載入完畢後,會執行此回撥函式,引數是對應的依賴模組。
假如main.js的程式碼如下:
[JavaScript] 純文字檢視 複製程式碼require(['jquery', 'underscore', 'backbone'], function ($, _, Backbone){ // 程式碼 });
程式碼分析如下:
(1).jQuery、underscore和backone是main.js所依賴的模組。
(2).回撥函式會在前面三個模組載入完畢後執行,引數是對應的模組(名稱可以自己定義)。
特別說明:main.js的載入也是非同步的,如果頁面中配置了其它JS載入,則不能保證它們所依賴的JS已經載入成功。
程式碼如下:
[HTML] 純文字檢視 複製程式碼<script data-main="scripts/main" src="scripts/require.js"></script> <script src="scripts/other.js"></script>
main.js程式碼如下:
[JavaScript] 純文字檢視 複製程式碼require.config({ paths: { foo: 'libs/foo-1.1.3' } });
other.js程式碼如下:
[JavaScript] 純文字檢視 複製程式碼require( ['foo'], function( foo ) { // 程式碼 });
可能other.js需要載入foo模組的時候,main.js還有執行完對foo-1.1.3的重新命名,所以會導致other.js載入foo.js而不是libs/foo-1.1.3.js。
關於require.config()方法可以參閱require.config()用法一章節。
相關文章
- 前端 | gulp 打包 require.js 模組依賴前端UIJS
- AMD非同步模組定義和Require.js中使用jquery介紹非同步UIJSjQuery
- require.js載入非規範的模組UIJS
- Javascript模組化程式設計(三):require.js的用法JavaScript程式設計UIJS
- amd規範&require.jsUIJS
- require.js用法介紹UIJS
- require.js入門教程UIJS
- 為什麼需要require.jsUIJS
- require.js簡單入門UIJS
- postman(一):主介面模組解析Postman
- require.js瞭解一下UIJS
- 如何載入require.js檔案UIJS
- RequireJs學習筆記之data-main Entry PointUIJS筆記AI
- jQ進階篇–jQuery 對AMD的支援(Require.js中如何使用jQuery)jQueryUIJS
- 使用 Router 實現的模組化,如何優雅的回到主頁面
- require.js的作用簡單介紹UIJS
- require.js 迴圈依賴介紹UIJS
- CO模組成本物件控制的主資料物件
- pymysql模組的使用MySql
- 使用SecureLink模組
- wtforms模組的使用ORM
- 使用typescript開發angular模組(編寫模組)TypeScriptAngular
- Flask:sqlalchemy模組的使用FlaskSQL
- glom模組的使用(一)
- glom模組的使用(二)
- OpenCV中GPU模組使用OpenCVGPU
- Drupal 模組使用心得
- 換主機板-主機名被修改 node1無法獲取css模組CSS
- MacOS使用Docker建立MySQL主主資料庫MacDockerMySql資料庫
- git 子模組使用小結Git
- 使用Leaflet建立地圖模組地圖
- Paramiko模組簡單使用
- BeautifulSoup模組的使用方法
- 如何使用`open-uri`模組
- Python中模組的使用Python
- 使用 Router 思想劃分模組
- 【OpenCV】OpenCV中GPU模組使用OpenCVGPU
- 使用CPAN安裝Perl模組