Layui入门(小白必备)

时间:2025-01-21 19:29:26

首先我目前用的版本是 layui-v2.5.5 ,后期大家用的版本可能会有所出入,大家可自行去 官网 自行下载最新版,当然大家如有什么不懂的,请直接留言,我会尽快为你解答,共勉。

一、目录结构

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

二、简单介绍

layui分为两种包(模块化、非模块化),非模块化引的是  ,里面包含的所有组件,相当于你去肯德基里面买的全家桶。

模块化引的是  ,相当于你去肯德基里面按自己的喜好点的单品,吃啥点啥(用到哪个模块就引入哪个模块)避免浪费。

同理在实际开发时,如果你一上来就引了个全包会加大与服务器HTTP时的通信压力,所以我推荐大家使用 layui 时使用模块化的方式去实现 layui 的功能,按模块去熟悉 layui 。

三、模块化使用教程

大家先看下官网给出了哪些模块,如下图:

上面红色框出的部分就是目前版本中所拥有的模块,而我们一般使用最频繁的模块就是layer(弹出层)、table(数据表格)、form(表单),下面我将结合我最近的代码块给大家讲解。

1、数据表格(table)

    首先大家通过

([模块名,模块名]),function(){}

引入所需 模块,然后结合下图对 table 模块进行初步的认识:

var layer = 
            ,$ = layui.$
			,form = 
            ,laydate = ;

这段代码的意思是对所引入的模块起别名,方便后面大家可直接通过 别名 调用模块中的方法,该模块中需要注意以下几点:

① 数据表格的数据接口需返回 JSON 格式的数据

② 分页需在后台进行数据的控制,前端只提供了分页参数,默认为 page (页码) limit (每页展示数)

③ 列表中展示列数据不需要处理的直接将 fileld 与后台属性保持一致即可,对于需要特殊处理的,如常见的 对象 、时间 可通过如下图中的方式进行控制。

文末附上 js 格式化时间的方法,方便大家参考。

2、表单(form)

引入方式同上,直接上图:

该模块需要注意的有以下几个方面:

① 表格数据的获取方式一般可直接写 但当有附件时,推荐大家用

var formData  = new FormData($("#mealRollForm")[0]);

 ② 表单方法末尾一定要加上 break !!! 别问我为什么,你可以不加试试...

3、弹出层(layer)

弹出层没啥好说的,直接上官网的介绍:

基础参数

我们提到的基础参数主要指调用方法时用到的配置项,如:({content: ''})('', {time: 3})等,其中的content和time即是基础参数,以键值形式存在,基础参数可合理应用于任何层类型中,您不需要所有都去配置,大多数都是可选的。而其中的、就是内置方法。注意,从2.3开始,无需通过来加载拓展模块

type - 基本层类型

title - 标题

content - 内容

类型:Number,默认:0

layer提供了5种层类型。可传入的值有:0(信息框,默认)1(页面层)2(iframe层)3(加载层)4(tips层)。 若你采用({type: 1})方式调用,则type为必填项(信息框除外)

类型:String/Array/Boolean,默认:'信息'

title支持三种类型的值,若你传入的是普通的字符串,如title :'我是标题',那么只会改变标题文本;若你还需要自定义标题区域样式,那么你可以title: ['文本', 'font-size:18px;'],数组第二项可以写任意css样式;如果你不想显示标题栏,你可以title: false

类型:String/DOM/Array,默认:''

content可传入的值是灵活多变的,不仅可以传入普通的html内容,还可以指定DOM,更可以随着type的不同而不同

这块建议大家直接看官方文档,上面介绍的很详细,这块也没啥坑,附上 链接

js 时间格式化

//转换日期格式(时间戳转换为datetime格式)
function changeDateFormat(cellval) {
    var dateVal = cellval + "";
    if (cellval != null) {
        var date = new Date(parseInt(("/Date(", "").replace(")/", ""), 10));
        var month = () + 1 < 10 ? "0" + (() + 1) : () + 1;
        var currentDate = () < 10 ? "0" + () : ();

        var hours = () < 10 ? "0" + () : ();
        var minutes = () < 10 ? "0" + () : ();
        var seconds = () < 10 ? "0" + () : ();

        return () + "-" + month + "-" + currentDate + " " + hours + ":" + minutes + ":" + seconds;
    }else{
        return "";
    }
}