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

相关文章
相关标签/搜索