365bet官网中文网-365网站靠谱不-28365365体育在线

Est. 1980 · 每日复古新闻

Layui 模块规范,layui扩展模块,layui命名空间,layui预加载

Layui 模块规范,layui扩展模块,layui命名空间,layui预加载

layui 官方提供的模块有时可能还无法满足你,或者你试图按照layer的模块规范来扩展一个模块。那么你有必要认识layui.define()方法,相信你在文档左侧的“底层方法”中已有所阅读。下面就让我们一起扩展一个 layui 模块吧:

第一步:确认模块名,假设为:mymod,然后新建一个mymod.js 文件放入项目任意目录下(注意:不用放入layui目录)

第二步:编写 mymod.js 如下:

/**

扩展一个 mymod 模块

**/

layui.define(function(exports){ //提示:模块也可以依赖其它模块,如:layui.define('mod1', callback);

var obj = {

hello: function(str){

alert('Hello '+ (str||'mymod'));

}

};

//输出 mymod 接口

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!

});

大体上来说,layui 的模块定义很类似 Require.js 和 Sea.js,但跟他们又有着明显的不同,譬如在接口输出等地方。

相关文章