The core of the layUI module is the two underlying methods of layui.js: one for defining the module, layui.define(), and one for loading the module, layui.use(). (Recommended: layui usage tutorial)
1. Pre-loading
Layui’s module loading uses the core layui.use(mods, callback) method. When your JS When you need to use the Layui module, we recommend that you use preloading, because this can avoid the trouble of writing layui.use everywhere. You should define it like this in the outermost layer:
+ View Code
2. Module namespace
layui’s module interface will be bound under the layui object, and is internally completed by the layui.define() method. Each module has a unique name and cannot be occupied. So you don’t need to worry about the module’s space being polluted unless you actively delete layui.{module name}. Calling the module can be achieved through the layui.use method, and then the module interface is obtained through the layui object. Such as:
layui.use(['layer', 'laypage', 'laydate'], function(){ var layer = layui.layer //获得layer模块 ,laypage = layui.laypage //获得laypage模块 ,laydate = layui.laydate; //获得laydate模块 //使用模块 });
Note: In fact, if you don’t want to use layui.use, you can introduce layui.all.js to replace layui.js, see: Non-modular usage
3, Expand a layui module
How to extend a Layui module:
Step one: Confirm the module name, assuming it is: mymod, then create a new mymod.js file and put it in any directory of the project (note : No need to put it in the layui directory)
The second step: Write test.js as follows:
/** 扩展一个test模块 **/ layui.define(function(exports){ //提示:模块也可以依赖其它模块,如:layui.define('layer', callback); var obj = { hello: function(str){ alert('Hello '+ (str||'mymod')); } }; //输出test接口 exports('mymod', obj); });
The third step: Set the directory where the extension module is located, and then you can add it to other JS files Used
//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! });
Case:
Timeline:
<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>
The above is the detailed content of Layui module introduction. For more information, please follow other related articles on the PHP Chinese website!