最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

layui怎么使用

来源:动视网 责编:小采 时间:2020-11-27 15:02:01
文档

layui怎么使用

layui怎么使用:如果你想了解更多关于layui的知识,可以点击:layui教程先看下Layui的介绍: layui 是一款采用自身模块规范编写的情怀级前端UI框架,遵循原生HTML/CSS/JS的书写与组织形式,门槛极低,拿来即用。其外在极简,却又不失饱满的内在,体积轻盈,组件丰盈,从核心
推荐度:
导读layui怎么使用:如果你想了解更多关于layui的知识,可以点击:layui教程先看下Layui的介绍: layui 是一款采用自身模块规范编写的情怀级前端UI框架,遵循原生HTML/CSS/JS的书写与组织形式,门槛极低,拿来即用。其外在极简,却又不失饱满的内在,体积轻盈,组件丰盈,从核心


如果你想了解更多关于layui的知识,可以点击:layui教程

先看下Layui的介绍:

  layui 是一款采用自身模块规范编写的情怀级前端UI框架,遵循原生HTML/CSS/JS的书写与组织形式,门槛极低,拿来即用。其外在极简,却又不失饱满的内在,体积轻盈,组件丰盈,从核心代码到API的每一处细节都经过精心雕琢,非常适合界面的快速开发。layui 首个版本发布于2016年金秋,她区别于那些基于MVVM底层的UI框架,却并非逆道而行,而是信奉返璞归真之道。准确地说,她更多是为服务端程序员量身定做,你无需涉足各种前端工具的复杂配置,只需面对浏览器本身,让一切你所需要的元素与交互,从这里信手拈来。layui 兼容人类正在使用的全部浏览器(IE6/7除外),可作为PC端后台系统与前台界面的速成开发方案。

获取Layui

  可以 官网首页 下载到 layui 的最新版,它经过了自动化构建,更适合用于生产环境。目录结构如下:

 ├─css //css目录
 │ │─modules //模块css目录(一般如果模块相对较大,我们会单独提取,比如下面三个:)
 │ │ ├─laydate
 │ │ ├─layer
 │ │ └─layim
 │ └─layui.css //核心样式文件
 ├─font //字体图标目录
 ├─images //图片资源目录(目前只有layim和编辑器用到的GIF表情)
 │─lay //模块核心目录
 │ └─modules //各模块组件
 │─layui.js //基础核心库
 └─layui.all.js //包含layui.js和所有模块的合并文件

快速上手

获得 layui 后,将其完整地部署到你的项目目录(或静态资源服务器),你只需要引入下述两个文件:

./layui/css/layui.css
./layui/layui.js //提示:如果是采用非模块化方式(最下面有讲解),此处可换成:./layui/layui.all.js

  你只需要加载这两个文件,不用去管其他任何文件。因为他们(比如各模块)都是在最终使用的时候才会自动加载。这是一个基本的入门页面;

模块化方式

  我们推荐你遵循 layui 的模块规范建立一个入口文件,并通过 layui.use() 方式来加载该入口文件,如下所示:

<!DOCTYPE html>
<html>
<head>
 <meta charset="utf-8">
 <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
 <title>开始使用layui</title>
 <link rel="stylesheet" href="../layui/css/layui.css">
</head>
<body>
 
<!-- 你的HTML代码 -->
 
<script src="../layui/layui.js"></script>
<script>
//一般直接写在一个js文件中
layui.use(['layer', 'form'], function(){
 var layer = layui.layer
 ,form = layui.form;
 
 layer.msg('Hello World');
});
</script> 
</body>
</html>

非模块化方式(即所有模块一次性加载)

  如果你并不喜欢 layui 的模块化组织方式,你完全可以毅然采用“一次性加载”的方式,我们将 layui.js 及所有模块单独打包合并成了一个完整的js文件,用的时候直接引入这一个文件即可。当你采用这样的方式时,你无需再通过 layui.use() 方法加载模块,直接使用即可,如:

<!DOCTYPE html>
<html>
<head>
 <meta charset="utf-8">
 <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
 <title>非模块化方式使用layui</title>
 <link rel="stylesheet" href="../layui/css/layui.css">
</head>
<body>
 
<!-- 你的HTML代码 -->
 
<script src="../layui/layui.all.js"></script>
<script>
//由于模块都一次性加载,因此不用执行 layui.use() 来加载对应模块,直接使用即可:
;!function(){
 var layer = layui.layer
 ,form = layui.form;
 
 layer.msg('Hello World');
}();
</script> 
</body>
</html>

模块化与非模块化

  我还是比较喜欢模块化这个概念,需要的时候就加载,因为假如是非模块化的话,一开始就是加载全部js文件,但实际上有些页面用到模块可能很少,并不需要加载这么大的js文件,所以还是推荐使用模块化的方式。非模块化虽然方便,还是对用户其实不太友好的。

模块规范

  layui 的模块是基于 layui.js 内部实现的异步模块加载方式,它并不遵循于AMD(没有为什么,毕竟任性呀!),而是自己定义了一套更轻量的模块规范。并且这种方式在经过了大量的实践后,成为 layui 最核心的模块加载引擎。

预先加载

  开门见山,还是直接说使用比较妥当。Layui的模块加载采用核心的 layui.use(mods, callback)方法,当你的JS 需要用到Layui模块的时候,我们更推荐你采用预先加载,因为这样可以避免到处写layui.use的麻烦。你应该在最外层如此定义:

/*
 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);
 }
 })
});

按需加载(不推荐)

  如果你有强迫症,你对网站的性能有极致的要求,你并不想预先加载所需要的模块,而是在触发一个动作的时候,才去加载模块,那么,这是允许的。你不用在你的JS最外层去包裹一个大大的 layui.use,你只需要:

/*
 Demo2.js
 按需加载一个Layui模块
*/
 
//……
//你的各种JS代码什么的
//……
 
//下面是在一个事件回调里去加载一个Layui模块
button.addEventListener('click', function(){
 layui.use('laytpl', function(laytpl){ //温馨提示:多次调用use并不会重复加载laytpl.js,Layui内部有做模块cache处理。
 var html = laytpl('').render({});
 console.log(html);
 });
});

  注意:如果你的JS中需要大量用到模块,我们并不推荐你采用这种加载方式,因为这意味着你要写很多layui.use(),代码可维护性不高。
  建议还是采用:预先加载。即一个JS文件中,写一个use即可。

模块命名空间

  Layui的全部模块绑定在 layui对象下,内部由layui.define()方法来完成。每一个模块都会一个特有的名字,并且无法被占用。所以你无需担心模块的空间被污染,除非是你 delete layui.mod; 调用一个模块也必须借助layui对象的赋值。如:

layui.use(['layer', 'laypage', 'laydate'], function(){
 var layer = layui.layer //获得layer模块
 ,laypage = layui.laypage //获得laypage模块
 ,laydate = layui.laydate; //获得laydate模块
 
 //使用模块
});

  一个模块一旦加载后,就会注册在layui对象下,所以你无法直接用模块名来获得,而同样借助layui对象。譬如有时你可能会直接在元素的事件属性上去调用一个模块,如:

<input onclick="layui.laydate()">

扩展一个Layui模块

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

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

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

/**
 扩展一个test模块
**/ 
layui.define(function(exports){ //提示:模块也可以依赖其它模块,如:layui.define('layer', callback);
 var obj = {
 hello: function(str){
 alert('Hello '+ (str||'test'));
 }
 };
 //
输出test接口 exports('test', obj); });

  第三步:设定扩展模块所在的目录,然后就可以在别的JS文件中使用了

//config的设置是全局的
layui.config({
 base: '/res/js/' //假设这是test.js所在的目录
}).extend({ //设定模块别名
 test: 'test' //如果test.js是在根目录,也可以不用设定别名
 ,test1: 'admin/test1' //相对于上述base目录的子目录
});
 
//使用test
layui.use('test', function(){
 var test = layui.test;
 
 test.hello('World!'); //弹出Hello World!
});
//使用test1
layui.use('test1', function(){
 var test = layui.test1;
 
 //……
});

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

文档

layui怎么使用

layui怎么使用:如果你想了解更多关于layui的知识,可以点击:layui教程先看下Layui的介绍: layui 是一款采用自身模块规范编写的情怀级前端UI框架,遵循原生HTML/CSS/JS的书写与组织形式,门槛极低,拿来即用。其外在极简,却又不失饱满的内在,体积轻盈,组件丰盈,从核心
推荐度:
标签: 使用 如何 lay
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top