在前端模塊化的時候,不僅僅是js需要進(jìn)行模塊化管理,html有時候也需要模塊化管理。這里就介紹下如何通過requirejs,實(shí)現(xiàn)html代碼的模塊化開發(fā)。
如何使用requirejs加載html
Reuqirejs有一個text的插件,它可以讀取指定文件的內(nèi)容,讀取到的內(nèi)容就是文本。
如何下載text插件
第一種方法,可以通過npm下載:
npm install requirejs/text
第二種方法,也可以直接去官方github上面直接下載。
直接拷貝內(nèi)容到text.js中即可。
如何安裝text插件
在requirejs的main.js中配置text插件的依賴即可,跟jquery差不多,只要保證能通過正常的加載方式加載到它就行。
requirejs.config({baseUrl: './',paths: {'text':path+'/require/text',...},shim: {...}}); 也可以直接放在baseUrl里面。
如何使用text
在目標(biāo)模塊中,按照下面的語法即可:
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的模塊化開發(fā)?
看過上面你已經(jīng)會使用text了,但是仍然不知道怎么組織前端代碼。
舉個栗子:
博客園的網(wǎng)站頁面會根據(jù)上方的導(dǎo)航跳轉(zhuǎn)到不同的頁面。如果是在單頁面中,很容易想到原始的做法是,導(dǎo)航的按鈕對應(yīng)不同的div,點(diǎn)擊那個按鈕,就顯示與之對應(yīng)的div;其他的div則隱藏掉。
那么,前端的代碼可能會這樣:
<html><body><nav>導(dǎo)航按鈕1、導(dǎo)航按鈕2、導(dǎo)航按鈕3</nav><div style="display:block">按鈕1對應(yīng)的頁面</div><div style="display:none">按鈕2對應(yīng)的頁面</div><div style="display:none">按鈕3對應(yīng)的頁面</div></body></html>
這樣的代碼會很雜亂...而且前端Html會很長...不利于維護(hù)。
那么有了reuqirejs的text插件以后,就可以這樣了:
<html><body><nav>導(dǎo)航按鈕1、導(dǎo)航按鈕2、導(dǎo)航按鈕3</nav><div id="target"></div></body></html>
然后在對應(yīng)的模塊中:
$('#target').html(require("text!目標(biāo)按鈕對應(yīng)的頁面.html")); 這樣就隨性多了吧!前端代碼也可以跟著模塊一起有效的管理了!
不過需要注意的是:這種方式會導(dǎo)致Jquery綁定的事件失效——所以一定要在html()方法后面,重新綁定下事件。
關(guān)于在Html中使用Requirejs進(jìn)行模塊化開發(fā)的相關(guān)知識就給大家介紹這么多,希望對大家有所幫助!



















