在Html中使用Requirejs進行模塊化開發

在前端模塊化的時候,不單單是js須要進行模塊化管理,html有時候也須要模塊化管理。這裏就介紹下如何經過requirejs,實現html代碼的模塊化開發。html

如何使用requirejs加載html

Reuqirejs有一個text的插件,它能夠讀取指定文件的內容,讀取到的內容就是文本。前端

如何下載text插件

第一種方法,能夠經過npm下載:jquery

npm install requirejs/text

第二種方法,也能夠直接去官方github上面直接下載
直接拷貝內容到text.js中便可。git

如何安裝text插件

在requirejs的main.js中配置text插件的依賴便可,跟jquery差很少,只要保證能經過正常的加載方式加載到它就行。github

requirejs.config({
    baseUrl: './',
    paths: {
        'text':path+'/require/text',
        ...
    },
    shim: {
        ...
    }
});

也能夠直接放在baseUrl裏面。npm

如何使用text

在目標模塊中,按照下面的語法便可:模塊化

define(function(require){
    var html = require("text!html/test.html");
    console.log(html);
});

或者requirejs

define(["text!html/test.html"],function(html){
    console.log(html);
});

如何進行html的模塊化開發?

看過上面你已經會使用text了,可是仍然不知道怎麼組織前端代碼。網站

舉個栗子:

博客園的網站頁面會根據上方的導航跳轉到不一樣的頁面。若是是在單頁面中,很容易想到原始的作法是,導航的按鈕對應不一樣的div,點擊那個按鈕,就顯示與之對應的div;其餘的div則隱藏掉。ui

那麼,前端的代碼可能會這樣:

<html>
<body>
<nav>
    導航按鈕一、導航按鈕二、導航按鈕3
</nav>

<div style="display:block">按鈕1對應的頁面</div>
<div style="display:none">按鈕2對應的頁面</div>
<div style="display:none">按鈕3對應的頁面</div>

</body>
</html>

這樣的代碼會很雜亂...並且前端Html會很長...不利於維護。

那麼有了reuqirejs的text插件之後,就能夠這樣了:

<html>
<body>
<nav>
    導航按鈕一、導航按鈕二、導航按鈕3
</nav>

<div id="target"></div>
</body>
</html>

而後在對應的模塊中:

$('#target').html(require("text!目標按鈕對應的頁面.html"));

這樣就隨性多了吧!前端代碼也能夠跟着模塊一塊兒有效的管理了!

不過須要注意的是:這種方式會致使Jquery綁定的事件失效——因此必定要在html()方法後面,從新綁定下事件。

相關文章
相關標籤/搜索