關於layUI模塊的核心,就是 layui.js 的兩個底層方法:一個用於定義模塊的 layui.define(),一個加載模塊的 layui.use()數組
一、預先加載模塊化
Layui的模塊加載採用核心的 layui.use(mods, callback)方法,當你的JS 須要用到Layui模塊的時候,咱們更推薦你採用預先加載,由於這樣能夠避免處處寫layui.use的麻煩。你應該在最外層如此定義:ui
/* Demo1.js 使用Layui的form和upload模塊 */ layui.use(['form', 'upload'], function(){ //若是隻加載一個模塊,能夠不填數組。如:layui.use('form') var form = layui.form //獲取form模塊 ,upload = layui.upload; //獲取upload模塊 //監聽提交按鈕 form.on('submit(test)', function(data){ console.log(data); }); //實例化一個上傳控件 upload({ url: '上傳接口url' ,success: function(data){ console.log(data); } }) });
二、模塊命名空間url
layui 的模塊接口會綁定在 layui 對象下,內部由 layui.define() 方法來完成。每個模塊都會一個特有的名字,而且沒法被佔用。因此你無需擔憂模塊的空間被污染,除非你主動 delete layui.{模塊名}。調用模塊可經過 layui.use 方法來實現,而後再經過 layui 對象得到模塊接口。如:spa
layui.use(['layer', 'laypage', 'laydate'], function(){ var layer = layui.layer //得到layer模塊 ,laypage = layui.laypage //得到laypage模塊 ,laydate = layui.laydate; //得到laydate模塊 //使用模塊 });
注意:事實上,若是你不想採用 layui.use,你能夠引入 layui.all.js 來替代 layui.js,見:非模塊化用法3d
三、擴展一個 layui 模塊orm
擴展一個Layui模塊方法:cdn
第一步:確認模塊名,假設爲:mymod,而後新建一個mymod.js 文件放入項目任意目錄下(注意:不用放入layui目錄)對象
第二步:編寫test.js 以下:blog
/** 擴展一個test模塊 **/ layui.define(function(exports){ //提示:模塊也能夠依賴其它模塊,如:layui.define('layer', callback); var obj = { hello: function(str){ alert('Hello '+ (str||'mymod')); } }; //輸出test接口 exports('mymod', obj); });
第三步:設定擴展模塊所在的目錄,而後就能夠在別的JS文件中使用了
//config的設置是全局的 layui.config({ base: '/res/js/' //假設這是你存放拓展模塊的根目錄 }).extend({ //設定模塊別名 mymod: 'mymod' //若是 mymod.js 是在根目錄,也能夠不用設定別名 ,mod1: 'admin/mod1' //相對於上述 base 目錄的子目錄 }); //你也能夠忽略 base 設定的根目錄,直接在 extend 指定路徑(主要:該功能爲 layui 2.2.0 新增) layui.extend({ mod2: '{/}http://cdn.xxx.com/lib/mod2' // {/}的意思即表明採用自有路徑,即不跟隨 base 路徑 }) //使用拓展模塊 layui.use(['mymod', 'mod1'], function(){ var mymod = layui.mymod ,mod1 = layui.mod1 ,mod2 = layui.mod2; mymod.hello('World!'); //彈出 Hello World! });
案例:
時間線:
<ul class="layui-timeline"> <li class="layui-timeline-item"> <i class="layui-icon layui-timeline-axis"></i> <div class="layui-timeline-content layui-text"> <h3 class="layui-timeline-title">8月18日</h3> <p> layui 2.0 的一切準備工做彷佛都已到位。發佈之弦,一觸即發。 <br>不枉近百個日日夜夜與之爲伴。因小而大,因弱而強。 <br>不管它能走多遠,抑或如何支撐?至少我曾傾注全心,無怨無悔 <i class="layui-icon"></i> </p> </div> </li> <li class="layui-timeline-item"> <i class="layui-icon layui-timeline-axis"></i> <div class="layui-timeline-content layui-text"> <h3 class="layui-timeline-title">8月16日</h3> <p>杜甫的思想核心是儒家的仁政思想,他有「<em>致君堯舜上,再使風俗淳</em>」的宏偉抱負。我的最愛的名篇有:</p> <ul> <li>《登高》</li> <li>《茅屋爲秋風所破歌》</li> </ul> </div> </li> <li class="layui-timeline-item"> <i class="layui-icon layui-timeline-axis"></i> <div class="layui-timeline-content layui-text"> <h3 class="layui-timeline-title">8月15日</h3> <p> 中國人民抗日戰爭勝利72週年 <br>經常在想,儘管對這個國家有這樣那樣的抱怨,但咱們的確生在了最好的時代 <br>銘記、感恩 <br>全部爲中華民族浴血奮戰的英雄將士 <br>永垂不朽 </p> </div> </li> <li class="layui-timeline-item"> <i class="layui-icon layui-timeline-axis"></i> <div class="layui-timeline-content layui-text"> <div class="layui-timeline-title">過去</div> </div> </li> </ul>
運行圖:
每一個模塊都有對應的API說明使用文檔,https://www.layui.com/demo/
layui文件下載地址:連接:https://pan.baidu.com/s/1z9aDwKJwa2vW46vpmS8DxQ 密碼:jt2x