layUI

關於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

相關文章
相關標籤/搜索