好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

Layui底层方法

方法:layui.use([mods], callback)

参数 mods:如果填写,必须是一个 layui 合法的模块名(不能包含目录)。

从 layui 2.6 开始,若 mods 不填,只传一个 callback 参数,则表示引用所有内置模块。

参数 callback:即为模块加载完毕的回调函数。

从 layui 2.6 开始,该回调会在 html 文档加载完毕后再执行,确保你的代码在任何地方都能对元素进行操作。

//引用指定模块

layui.use(['layer', 'laydate'], function(){

  var layer = layui.layer

  ,laydate = layui.laydate;

  //do something

});

//引用所有模块(layui 2.6 开始支持)

layui.use(function(){

  var layer = layui.layer

  ,laydate = layui.laydate

  ,table = layui.table;

  //…

  //do something

});

你还可以通过回调函数得到模块对象,如

//通过回调的参数得到模块对象

layui.use(['layer', 'laydate', 'table'], function(layer, laydate, table){

  //使用 layer

  layer.msg('test');

  

  //使用 laydate

  laydate.render({});

  

  //使用 table

  table.render({})

});

动态加载 CSS

方法:layui.link(href)

href 即为 css 路径。注意:该方法并非是你使用 layui 所必须的,它一般只是用于动态加载你的外部 CSS 文件。

本地存储

本地存储是对 localStorage 和 sessionStorage 的友好封装,可更方便地管理本地数据。

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

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

上述两个方法的使用方式是完全一样的。其中参数 table 为表名,settings是一个对象,用于设置 key、value。下面以 layui.data 方法为例:

//【增】:向 test 表插入一个 nickname 字段,如果该表不存在,则自动建立。

layui.data('test', {

  key: 'nickname'

  ,value: '张三'

});

//【删】:删除 test 表的 nickname 字段

layui.data('test', {

  key: 'nickname'

  ,remove: true

});

layui.data('test', null); //删除test表

//【改】:同【增】,会覆盖已经存储的数据

//【查】:向 test 表读取全部的数据

var localTest = layui.data('test');

console.log(localTest.nickname); //获得“张三”

获取浏览器信息

方法:layui.device(key),参数 key 是可选的

由于 layui 的一些功能进行了兼容性处理和响应式支持,因此该方法同样发挥了至关重要的作用。其返回的信息如下:

var device = layui.device();

 //device 即可根据不同的设备返回下述不同的信息

{

  os: "windows" //当前浏览器所在的底层操作系统,如:Windows、Linux、Mac 等

  ,ie: false //当前浏览器是否为 ie6-11 的版本,如果不是 ie 浏览器,则为 false

  ,weixin: false //当前浏览器是否为微信 App 环境

  ,android: false //当前浏览器是否为安卓系统环境

  ,ios: false //当前浏览器是否为 IOS 系统环境

  ,mobile: false //当前浏览器是否为移动设备环境(v2.5.7 新增)

}

有时你的 App 可能会对 userAgent 插入一段特定的标识,譬如:

Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 myapp/1.8.6 Safari/537.36

你要验证当前的 WebView 是否在你的 App 环境,即可通过上述的myapp(即为 Native 给 Webview 插入的标识,可以随意定义)来判断。

</>

var device = layui.device('myapp');

if(device.myapp){

  alert('在我的App环境');

}

更多底层 API

除上述介绍的方法外,layui 内部还提供了许多底层引擎,他们同样是整个 layui 框架的有力支撑,在日常应用中通常也会用到:

方法/属性 描述

layui.cache 静态属性。获得一些配置及临时的缓存信息

layui.disuse(modules) 用于弃用某模块,以便重新扩展新的同名模块。如:layui.disuse('table');

参数支持数组,即可同时弃用多个模块。

注:v2.7.0 新增

layui.extend(options) 拓展一个模块别名,如:layui.extend({test: '/res/js/test'})

layui.each(obj, fn) 对象(Array、Object、DOM 对象等)遍历,可用于取代 for 语句

layui.type(operand) 获取详细数据类型(基本数据类型和各类常见引用类型)如:

layui.type([]); //array layui.type({}); //object layui.type(new Date()); //date等等。

该方法为 layui 2.6.7 新增

layui.isArray(obj) 对象是否为泛数组结构。如 Array、NodeList、jQuery 对象等等。

layui.isArray([1,6]); //true layui.isArray($('div')); //true layui.isArray(document.querySelectorAll('div')); //true

该方法为 layui 2.6.7 新增

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();

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 规范的模块化处理,你只需要像使用 Layui 的其他模块一样去使用 jQuery 即可。

另外,我们的图标取材于阿里巴巴矢量图标库(iconfont),构建工具采用 Gulp 。除此之外,不依赖于其他第三方工具。

layui - 在每一个细节中,用心与你沟通

查看更多关于Layui底层方法的详细内容...

  阅读:147次

上一篇: LAYUI模块规范

下一篇:LayUi弹出层教程