layui - 底层方法

目录

全局配置 layui.config(options)

定义模块 layui.define([mods], callback)

加载所需模块 layui.use([mods], callback)

动态加载CSS layui.link(href)

本地存储  => 对localStorage和sessionStorage的友好封装以更方便地管理本地数据

获取设备信息 layui.device(key),参数key是可选的

其他

第三方支撑


全局配置 layui.config(options)

全局化配置参数,但大部分时候非必须

目前支持的全局配置项:

layui.config({
  dir: '/res/layui/'   //layui.js 所在路径(注意,如果是 script 单独引入 layui.js,无需设定该参数。),一般情况下可以无视
  ,version: false   //一般用于更新模块缓存,默认不开启。设为 true 即让浏览器不缓存。也可以设为一个固定的值,如:201610
  ,debug: false   //用于开启调试模式,默认 false,如果设为 true,则JS模块的节点会保留在页面
  ,base: ''   //设定扩展的 layui 模块的所在目录,一般用于外部模块扩展
});

定义模块 layui.define([mods], callback)

定义一个 layui 模块
参数 mods 是可选的,用于声明该模块所依赖的模块。
callback 即为模块加载完毕的回调函数,它返回一个 exports 参数,用于输出该模块的接口

例:

layui.define(function(exports){
  // layui.define(['layer', 'laypage'], function(exports){   // 声明依赖(模块)
  //do something  

  // exports 是一个函数,接受两个参数,第一个参数为模块名,第二个参数为模块接口
  exports('demo', function(){
    alert('Hello World!');
  });
});

// 声明了模块后可以在外部使用,demo会注册到layui对象下 即可通过 layui.demo() 去执行该模块的接口

加载所需模块 layui.use([mods], callback)

注:mods 里面必须是一个合法的模块名,不能包含目录。如果需要加载目录,建议采用 extend 建立别名

例:
layui.use(['laypage', 'layedit'], function(){
  var laypage = layui.laypage
  ,layedit = layui.layedit;
  //do something
});

该方法的函数其实返回了所加载的模块接口,所以也可以不通过 layui 对象赋值获得接口,上述同:
layui.use(['laypage', 'layedit'], function(laypage, layedit){
  laypage();   //使用分页
  layedit.build();   //建立编辑器
});

动态加载CSS layui.link(href)

href 即为 css 路径,非必须,一般只是用于动态加载外部 CSS 文件

本地存储  => 对localStorage和sessionStorage的友好封装以更方便地管理本地数据

layui.data(table, settings), localStorage持久化存储,数据会永久存在除非物理删除。

layui.sessionData(table, settings), sessionStorage会话性存储,页面关闭后即失效。(layui 2.2.5 新增)

获取设备信息 layui.device(key),参数key是可选的

var device = layui.device();

// 可返回信息如:
{
  os: "windows"   //底层操作系统,windows、linux、mac等
  ,ie: false   //ie6-11的版本,如果不是ie浏览器,则为false
  ,weixin: false   //是否微信环境
  ,android: false   //是否安卓系统
  ,ios: false   //是否ios系统
  ,mobile: false   //是否为移动设备(v2.5.7 新增)
}

其他

layui.cache静态属性。获得一些配置及临时的缓存信息
layui.extend(options)拓展一个模块别名,如:layui.extend({test: '/res/js/test'})
layui.each(obj, fn)对象(Array、Object、DOM 对象等)遍历,可用于取代for语句
layui.getStyle(node, name)获得一个原始 DOM 节点的 style 属性值,如:layui.getStyle(document.body, 'font-size')
layui.img(url, callback, error)图片预加载
layui.sort(obj, key, desc)将数组中的对象按某个成员重新对该数组排序,如:layui.sort([{a: 3},{a: 1},{a: 5}], 'a')
layui.router()获得 location.hash 路由结构,一般在单页面应用中发挥作用。
layui.url(href)用于将一段 URL 链接中的 pathname、search、hash 属性值进行对象化处理

参数: href 可选。若不传,则自动读取当前页面的 url(即:location.href)
示例:var url = layui.url();

注意:系 v2.5.6 新增
layui.hint()向控制台打印一些异常信息,目前只返回了 error 方法:layui.hint().error('出错啦')
layui.stope(e)阻止事件冒泡
layui.onevent(modName, events, callback)增加自定义模块事件。有兴趣的同学可以阅读 layui.js 源码以及 form 模块
layui.event(modName, events, params)执行自定义模块事件,搭配 onevent 使用
layui.off(events, modName)用于移除模块相关事件的监听(v2.5.7 新增)

如:layui.off('select(filter)', 'form')
那么 form.on('select(filter)', callback)的事件将会被移除。

layui.factory(modName)用于获取模块对应的 define 回调函数

第三方支撑

layui 部分模块依赖 jQuery(比如 layer),但是并不用额外加载 jQuery。
layui 已经将 jQuery 最稳定的一个版本改为 layui 的内部模块,使用 layer 之类的模块时会首先判断页面是否已经引入 jQuery,如果没有则加载内部的 jQuery 模块,如果有则不会加载。
另外,图标取材于阿里巴巴矢量图标库(iconfont),构建工具采用 Gulp 。
除此之外,不依赖于任何第三方工具。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值