此文章適合入門的同學查看,之前因爲項目的原因,在網上找了一套Layer UI做的後臺管理系統模板,完全不懂LayUI裏面的JS用法,看了官方文檔和其它資料後才明白怎麼去實現模塊化這個例子,但是還是感覺網上的資料寫得不夠清晰,我嘗試把自己的想法寫出來,大家可以一起學習
1.首先從簡單的入手
加載所需模塊
方法:layui.use([mods], callback)
引用了Layui.js後
往js文件寫入
layui.use(['layer'],function(){ [mods]加載的模塊,現在加載的是彈出層
var layer = layui.layer; 彈出層模塊
layer.msg('風繼續吹')
})
2.定義模塊
方法:layui.define([mods], callback)
layui.define(['layer'], function(exports){
//do something
exports('demo', function(){
alert('Hello World!');
});
});
3.全局配置
方法:layui.config(options)
-
layui.config({
-
base: 'js/' //你存放新模塊的目錄,注意,不是layui的模塊目錄
-
}).use('index'); //加載入口
來到這一步,也許你還不明白,但是看完以下這個例子,你就會清晰多了
1.新建一個js文件夾和一個index.html,再加上官方下載的layui文件
在js文件夾裏面建立index.js(注意這個文件的名稱)
目錄現在是這樣的
2.再進行全局配置
在index.html中寫
layui.config({
base:'js/' //你存放新模塊的目錄,注意,不是layui的模塊目錄
}).use(['index','layer'],function(){ //加載入口 上述的 index 即爲你 js/ 目錄下的 index.js,看看官方的文件結構,如下圖,index.js相當於就成爲了新的文件模塊(與下文提的模塊不一樣)
var layer = layui.layer;
layer.msg('leslie world');
})
不僅可以指定我們的index.js模塊文件模塊(),還可以引用內置的模塊,比如laydate,layer等等
3.自定義模塊
在index.js中
layui.define(['layer'],function(exports){ //引用layer模塊
var layer = layui.layer;
exports('index',function(){ //注意,這裏是模塊輸出的核心,模塊名必須和use時的模塊名一致,這裏的index就是在index.html use的模塊
layer.msg('leslie cheung');
})
})
現在呢,我們已經定義了新的模塊 index,怎麼去運行該模塊呢
4.最後使用熱加載模塊layui.use()
繼續在index.js寫
layui.use(['index'],function(){
layui.index() //調用index這個自定義模塊
})
最後總結一下,通俗易懂點來講,進行全局配置(layui.config):創建的這個index.js是我們業務所需要的文件模塊,類似於layer,laydate那些結構的;
自定義模塊:接着我們發現業務的需求,需要進一步在index.js去寫自己的小模塊,於是呢通過define自定義模塊;
熱加載模塊:內置模塊和自定義模塊怎麼使用,通過layui.use()去加載