RequireJS入門一之實(shí)現(xiàn)第一個(gè)例子
為什么學(xué)習(xí)RequireJS?
像我這種菜鳥,會(huì)提到海量文章里提到的AMD、JS模塊化編程、異步... ... 等等
RequireJS會(huì)讓你以不同于往常的方式去寫JavaScript。你將不再使用script標(biāo)簽在HTML中引入JS文件,以及不用通過script標(biāo)簽順序去管理依賴關(guān)系。
RequireJS是一個(gè)Javascript 文件和模塊框架,它可以幫我們?nèi)ス芾韏s代碼(我的理解)。
深入學(xué)習(xí),我們便會(huì)被迫接受一系列的名詞:data-main、require、define、baseUrl、paths、shims、deps。。。等等;
總之,很多文章都在向我們推銷一些自己都說不明白的名詞和概念。
簡單點(diǎn),現(xiàn)在我們要做一個(gè)簡單的需求,用RequireJS管理我們的js代碼,還要能使用jquery!
1.構(gòu)建一個(gè)web工程,跑起來!
里面文件如圖:
這里面有好多坑,所以我把文件都放在文件根目錄,先排除掉這些小問題!
其中jquery.js和require.js是需要去網(wǎng)站下載的,請(qǐng)自行百度。
2. 在index.jsp中添加script標(biāo)簽
可以在<body>里添加一個(gè)標(biāo)簽 <p>RequireJS異步加載測試</p>
3. 補(bǔ)充main.js文件
require.config({ paths: { jquery: 'jquery-2.1.1' } }); require(['jquery'], function($) { alert($().jquery); });
4.跑起來~
你會(huì)看到彈出框,頁面已經(jīng)渲染顯示了 “RequireJS異步加載測試” 。
小結(jié):
a. RequireJS由James Burke創(chuàng)建,他也是AMD規(guī)范的創(chuàng)始人。它是一個(gè)工具庫,用于客戶端的模塊管理。
從本例體現(xiàn)出的:
1. 彈出alert的時(shí)候頁面同時(shí)也被渲染,體現(xiàn)了異步加載的功能,傳統(tǒng)放在head中的寫法會(huì)造成阻塞,只有點(diǎn)擊確定后才能渲染頁面。
2. 頁面只需要引入一個(gè)require.js,不需要再引入其他繁多復(fù)雜的js代碼,剩下的工作交給RequireJS框架來做!
b. 學(xué)習(xí)之前先了解AMD規(guī)范,AMD通過define來定義模塊,基本模式:define("id",[deps1,deps2,...],callback);
為什么本例沒有define就可以跑起來? 因?yàn)閖query提供了對(duì)AMD的支持。path對(duì)象即是用來引入各種模塊的。
普通的js代碼可否被RequireJS管理? 可以,使用shims來加載這些資源!
c. 總結(jié)以后的編碼思路:
Xx.jsp Xx.js(同main.js) 通過 require.config 引入各種js模塊(資源);require加載所需模塊,并在回調(diào)函數(shù)中傳入對(duì)應(yīng)變量,以方便在其中直接調(diào)用各模塊中的函數(shù)和變量。
d. 自己實(shí)現(xiàn): 頁面加一個(gè)按鈕;在main.js中加入juqery的click監(jiān)聽事件,測試是否監(jiān)聽成功!
e. 遺留問題:路徑問題,肯定不能在根目錄,不過這都不是事兒!
本文就是關(guān)于RequireJS入門一之實(shí)現(xiàn)第一個(gè)例子的全部敘述,希望對(duì)大家有所幫助。
- 一篇文章掌握RequireJS常用知識(shí)
- 教你5分鐘學(xué)會(huì)用requirejs(必看篇)
- RequireJS多頁面應(yīng)用實(shí)例分析
- 在Html中使用Requirejs進(jìn)行模塊化開發(fā)實(shí)例詳解
- RequireJS使用注意細(xì)節(jié)
- 使用requirejs模塊化開發(fā)多頁面一個(gè)入口js的使用方式
- requirejs + vue 項(xiàng)目搭建詳解
- 在JavaScript應(yīng)用中使用RequireJS來實(shí)現(xiàn)延遲加載
- 詳解RequireJS按需加載樣式文件
- 使用RequireJS庫加載JavaScript模塊的實(shí)例教程
- RequireJS用法簡單示例
相關(guān)文章
如何設(shè)置iframe高度自適應(yīng)在跨域情況下的可用方法
iframe的高度需要根據(jù)子頁面的實(shí)際高度來進(jìn)行調(diào)整,但是如果子頁面不在同一域中怎么辦?這時(shí)候腳本沒有辦法獲取到子頁面的高度,存在JavaScript跨域的問題2013-09-09JavaScript使用二分查找算法在數(shù)組中查找數(shù)據(jù)的方法
這篇文章主要介紹了JavaScript使用二分查找算法在數(shù)組中查找數(shù)據(jù)的方法,較為詳細(xì)的分析了二分查找法的原理與javascript實(shí)現(xiàn)技巧,需要的朋友可以參考下2015-04-04JavaScript設(shè)計(jì)模式中的橋接和中介者模式
這篇文章主要介紹了JavaScript設(shè)計(jì)模式中的橋接和中介者模式,橋接設(shè)計(jì)模式是一種偏向于組合的設(shè)計(jì)模式,而非繼承的設(shè)計(jì)模式,實(shí)現(xiàn)的細(xì)節(jié)從一個(gè)模塊推送給另一個(gè)具有單獨(dú)模塊的對(duì)象,而中介者設(shè)計(jì)模式是指通過一個(gè)中介者對(duì)象封裝一系列的對(duì)象交互2022-06-06靜態(tài)的動(dòng)態(tài)續(xù)篇之來點(diǎn)XML
靜態(tài)的動(dòng)態(tài)續(xù)篇之來點(diǎn)XML...2006-08-08Vue項(xiàng)目vscode 安裝eslint插件的方法(代碼自動(dòng)修復(fù))
這篇文章主要介紹了Vue項(xiàng)目vscode 安裝eslint插件的方法 代碼自動(dòng)修復(fù),需要的朋友可以參考下2020-04-04精解window.setTimeout()&window.setInterval()使用方式與參數(shù)傳遞問題!
精解window.setTimeout()&window.setInterval()使用方式與參數(shù)傳遞問題!...2007-11-11一文熟練掌握J(rèn)avaScript的switch用法
在JavaScript中switch語句是一種用于多條件分支的控制語句,下面這篇文章主要給大家介紹了關(guān)于如果通過一文熟練掌握J(rèn)avaScript的switch用法的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-01-01JS+CSS實(shí)現(xiàn)消息的點(diǎn)擊展示和隱藏(H5端)
在 H5 端,我們經(jīng)常需要實(shí)現(xiàn)類似于點(diǎn)擊按鈕來展示或隱藏消息的功能,以下是一個(gè)使用 CSS 和 JavaScript(配合 Vue.js)來實(shí)現(xiàn)這個(gè)效果的簡單示例,需要的朋友可以參考下2023-10-10