在Html中使用Requirejs進(jìn)行模塊化開(kāi)發(fā)實(shí)例詳解
在前端模塊化的時(shí)候,不僅僅是js需要進(jìn)行模塊化管理,html有時(shí)候也需要模塊化管理。這里就介紹下如何通過(guò)requirejs,實(shí)現(xiàn)html代碼的模塊化開(kāi)發(fā)。
如何使用requirejs加載html
Reuqirejs有一個(gè)text的插件,它可以讀取指定文件的內(nèi)容,讀取到的內(nèi)容就是文本。
如何下載text插件
第一種方法,可以通過(guò)npm下載:
npm install requirejs/text
第二種方法,也可以直接去官方github上面直接下載。
直接拷貝內(nèi)容到text.js中即可。
如何安裝text插件
在requirejs的main.js中配置text插件的依賴即可,跟jquery差不多,只要保證能通過(guò)正常的加載方式加載到它就行。
requirejs.config({ baseUrl: './', paths: { 'text':path+'/require/text', ... }, shim: { ... } });
也可以直接放在baseUrl里面。
如何使用text
在目標(biāo)模塊中,按照下面的語(yǔ)法即可:
define(function(require){ var html = require("text!html/test.html"); console.log(html); });
或者
define(["text!html/test.html"],function(html){ console.log(html); });
如何進(jìn)行html的模塊化開(kāi)發(fā)?
看過(guò)上面你已經(jīng)會(huì)使用text了,但是仍然不知道怎么組織前端代碼。
舉個(gè)栗子:
博客園的網(wǎng)站頁(yè)面會(huì)根據(jù)上方的導(dǎo)航跳轉(zhuǎn)到不同的頁(yè)面。如果是在單頁(yè)面中,很容易想到原始的做法是,導(dǎo)航的按鈕對(duì)應(yīng)不同的div,點(diǎn)擊那個(gè)按鈕,就顯示與之對(duì)應(yīng)的div;其他的div則隱藏掉。
那么,前端的代碼可能會(huì)這樣:
<html> <body> <nav> 導(dǎo)航按鈕1、導(dǎo)航按鈕2、導(dǎo)航按鈕3 </nav> <div style="display:block">按鈕1對(duì)應(yīng)的頁(yè)面</div> <div style="display:none">按鈕2對(duì)應(yīng)的頁(yè)面</div> <div style="display:none">按鈕3對(duì)應(yīng)的頁(yè)面</div> </body> </html>
這樣的代碼會(huì)很雜亂...而且前端Html會(huì)很長(zhǎng)...不利于維護(hù)。
那么有了reuqirejs的text插件以后,就可以這樣了:
<html> <body> <nav> 導(dǎo)航按鈕1、導(dǎo)航按鈕2、導(dǎo)航按鈕3 </nav> <div id="target"></div> </body> </html>
然后在對(duì)應(yīng)的模塊中:
$('#target').html(require("text!目標(biāo)按鈕對(duì)應(yīng)的頁(yè)面.html"));
這樣就隨性多了吧!前端代碼也可以跟著模塊一起有效的管理了!
不過(guò)需要注意的是:這種方式會(huì)導(dǎo)致Jquery綁定的事件失效——所以一定要在html()方法后面,重新綁定下事件。
關(guān)于在Html中使用Requirejs進(jìn)行模塊化開(kāi)發(fā)的相關(guān)知識(shí)就給大家介紹這么多,希望對(duì)大家有所幫助!
- 使用requirejs模塊化開(kāi)發(fā)多頁(yè)面一個(gè)入口js的使用方式
- 詳解JavaScript模塊化開(kāi)發(fā)
- JavaScript的模塊化開(kāi)發(fā)框架Sea.js上手指南
- Seajs 簡(jiǎn)易文檔 提供簡(jiǎn)單、極致的模塊化開(kāi)發(fā)體驗(yàn)
- JavaScript模塊化開(kāi)發(fā)之SeaJS
- 了解Javascript的模塊化開(kāi)發(fā)
- javascript 構(gòu)建模塊化開(kāi)發(fā)過(guò)程解析
- 深入探尋seajs的模塊化與加載方式
- seajs和requirejs模塊化簡(jiǎn)單案例分析
- 基于RequireJS和JQuery的模塊化編程日常問(wèn)題解析
- 基于RequireJS和JQuery的模塊化編程——常見(jiàn)問(wèn)題全面解析
- JavaScript 模塊化開(kāi)發(fā)實(shí)例詳解【seajs、requirejs庫(kù)使用】
相關(guān)文章
使用layui+ajax實(shí)現(xiàn)簡(jiǎn)單的菜單權(quán)限管理及排序的方法
今天小編就為大家分享一篇使用layui+ajax實(shí)現(xiàn)簡(jiǎn)單的菜單權(quán)限管理及排序的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-09-09用javascript實(shí)現(xiàn)的激活輸入框后隱藏初始內(nèi)容
用javascript實(shí)現(xiàn)的激活輸入框后隱藏初始內(nèi)容...2007-06-06深入理解ES6學(xué)習(xí)筆記之塊級(jí)作用域綁定
本篇文章主要介紹了深入理解ES6學(xué)習(xí)筆記之塊級(jí)作用域綁定,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-08-08silverlight線程與基于事件驅(qū)動(dòng)javascript引擎(實(shí)現(xiàn)軌跡回放功能)
前一段時(shí)間一直在重構(gòu)工作站軌跡回放功能,一開(kāi)始我覺(jué)得很簡(jiǎn)單,但是后面引發(fā)了一系列奇怪的問(wèn)題,讓我很蛋疼,所以不得不寫個(gè)總結(jié)加深記憶。2011-08-08js扁平數(shù)組和樹(shù)結(jié)構(gòu)相互轉(zhuǎn)換處理方法
這篇文章主要給大家介紹了關(guān)于js扁平數(shù)組和樹(shù)結(jié)構(gòu)相互轉(zhuǎn)換處理方法的相關(guān)資料,之前面試有遇到過(guò)這個(gè)問(wèn)題,面試官問(wèn)如何把一個(gè)數(shù)組數(shù)據(jù)扁平,然后轉(zhuǎn)化為Tree結(jié)構(gòu)數(shù)據(jù),工作中剛好也用到了,所以總結(jié)下,需要的朋友可以參考下2023-07-07