Quickly get started with the front-end framework layui
layui (homophone: UI-like) is a front-end UI framework written using its own module specifications. It follows the writing and organizational form of native HTML/CSS/JS. The threshold is extremely low and can be used out of the box.
1. Introduction
Before using layui, we must first understand layui What is it?
I think it can be summarized in one sentence of the author Xianxin: a front-end framework designed for back-end programmers.
A more detailed description is: This is a front-end framework that encapsulates various css, js, Ajax, etc. Its degree of encapsulation is so high that sometimes it is not even friendly to programmers. But for people with average front-end technology, layui is a good tool.
2. Start using layui
How to use: After downloading, import the project and then quote it
<script th:src="@{/jquery-3.3.1.min.js}"></script> <script th:src="@{/layui/layui.js}"></script> <link rel="stylesheet" th:href="@{/layui/css/layui.css}" />
First reference jquery, then reference layui.js and layui.css.
Why does it have to be local? No CDN?
As mentioned above, layui is too encapsulated "good" and the programmer's autonomy is limited. At this time, the source code of layui needs to be modified, such as the style of css - this is also the case with layui. Correct usage, not just simple use.
layui modules: layui is modular, including form, layer, laydate, laypage and other modules. It is these modules that make up the complete layui. When using layui, you need to specify the module you are using.
Start using layui:
<script> layui.use(['mod1', 'mod2'],function(args){ var mo1 = layui.mod1 ,mo2 = layui.mod2; }); </script>
3. Layui form
The following is a demonstration of the most common form form in HTML The use of layui.
html part:
<fieldset class="layui-elem-field layui-field-title" style="margin-top:30px;"> <legend style="text-align:center;">注册新账户</legend> </fieldset> <form id="reform" class="layui-form layui-form-pane" th:action="@{/user/register.html}" method="POST"> <div class="layui-form-item"> <label class="layui-form-label">邮箱</label> <div class="layui-input-block"> <input type="text" name="email" lay-verify="email" placeholder="请输入" autocomplete="off" class="layui-input" /> </div> </div> <div class="layui-form-item"> <label class="layui-form-label">用户名</label> <div class="layui-input-block"> <input type="text" name="name" lay-verify="required" placeholder="请输入" autocomplete="off" class="layui-input" /> </div> </div> <div class="layui-form-item"> <label class="layui-form-label">密码</label> <div class="layui-input-block"> <input type="password" name="password" lay-verify="pass" placeholder="请输入密码" autocomplete="off" class="layui-input" /> </div> </div> <div class="layui-form-item"> <label class="layui-form-label">重复密码</label> <div class="layui-input-block"> <input type="password" name="repassword" lay-verify="repass" placeholder="请输入密码" autocomplete="off" class="layui-input" /> </div> </div> <div class="layui-form-item"> <button class="layui-btn layui-btn-fluid" lay-submit="" lay-filter="demo1">注册</button> </div> <div style="text-align:center;margin-top:15px;"> <input type="checkbox" name="agree" lay-skin="primary" checked=""/> 我已阅读并同意 <a href="#" id="agreementLink">《隐私条款》</a> </div> </form>
javscript part:
<!-- js for form input and submit --> <script> layui.use(['form'], function(){ var form = layui.form; //自定义验证规则 form.verify({ pass: [/(.+){6,12}$/, '密码必须6到12位'] ,repass:function(value){ var pvalue = $("input[name='password']").val(); if(pvalue!=value){ return "两次输入的密码不一致"; } } }); //监听提交 form.on('submit(demo1)', function(data){ var agreeChecked = data.field.agree; if(agreeChecked!="on"){ msg("未同意隐私条款"); return false;//阻止表单提交 } }); }); </script>
Rendering:
## 4. Layui pop-up layer
Let’s talk about the pop-up layer. Pop-up can be said to be a very common thing, but basic HTML/JS only has the ugly alert("") method. layui contains a pop-up layer module called layer.Two ways to use layer:
1. Just like using the form module above, declare layui.use, and then use it in the function after use ;2. Import the independent layer module file, and then use it directly;The first method will not be discussed, and the second method will be introduced here. First, download the layer file from the layer official website, unzip it and put it into your own project, thenExample:
function msg(msg){ //墨绿深蓝风 layer.alert(msg, { title:'消息' ,skin: 'layui-layer-molv' //样式类名 ,closeBtn: 0 },function(index){ layer.close(index);//关闭 }); }
5. Layui file upload
The following introduces layui file upload, that is, the upload module<!-- 上传图片--> <div class="layui-tab-item"> <div class="layui-upload"> <button type="button" class="layui-btn layui-btn-normal" id="headButton"> <i class="layui-icon"></i>选择图片 </button> <button type="button" class="layui-btn" id="headAddButton">开始上传</button> </div> <div class="layui-inline layui-word-aux" style="margin-top:20px;"> <label>注意:支持jpg,png和gif格式,文件大小应小于10MB</label> </div> </div>
<!-- 文件上传 --> <script> layui.use('upload',function(){ var $ = layui.jquery ,upload = layui.upload; //选完文件后不自动上传 upload.render({ elem: '#headButton' ,url: getRootPath()+'/user/uploadPicture' ,size: 10*1024 //10*1024KB = 10MB ,accept: 'images' ,acceptMime: 'image/jpg,image/png,image/gif' ,auto: false ,bindAction: '#headAddButton' ,done: function(res){ msg(res.msg); //刷新头像地址 var resUrl = res.url; if(resUrl!=""){ document.getElementById("userImg").src=getRootPath()+ resUrl; } } }); }); </script>
@Autowired FileService fileService; @RequestMapping(path="/uploadPicture",method= {RequestMethod.POST}) @ResponseBody public Map<String,Object> uploadFile(@RequestParam("file")MultipartFile file,HttpServletRequest request){ Map<String,Object> map = new HashMap<String,Object>(); String path = fileService.uploadImg(file, "head");//service层保存文件 //返回值,必须按照这样写——要符合upload模块的回调接口才行 map.put("code", 0); //0表示成功 map.put("msg","上传成功"); map.put("data", ""); map.put("url", path); return map; }
//上传接口 upload.render({ elem: '#id' ,url: '/api/upload/' //必填项 ,method: '' //可选项。HTTP类型,默认post ,data: {} //可选项。额外的参数,如:{id: 123, abc: 'xxx'} }); //返回值 { "code": 0 ,"msg": "" ,"data": { "src": "http://cdn.layui.com/12Quickly get started with the front-end framework layui" } }
6. Layui paging
Pagination is also often used in websites. Back-end paging is easy to implement, but for the front-end It's not that ideal. layui provides its own paging module-laypage.<div id="allNewsDiv"></div> <div id="demo"></div>
layui.use(['element','laypage'], function(){ var element = layui.element ,laypage = layui.laypage; $.ajax({ url:getRootPath()+'/news/count' ,type:'GET' ,async:true //false表示非异步,即同步,即请求处理完毕后才能返回; ,data:{"page":1, "limit":10} ,dataType:'json' ,success:function(alldata){ var numbers = alldata.count; //总页数大于页码总数 laypage.render({ elem: 'demo' ,count: numbers//数据总数 ,first: '首页' ,last: '尾页' ,jump: function(obj){ $.ajax({ url:getRootPath()+'/news/list' ,type:'GET' ,async:true ,data:{"page":obj.curr, "limit":obj.limit} ,dataType:'json' ,success:function(data){ var shtml = getNewsContentHTML(data);//js处理数据并填充div document.getElementById("allNewsDiv").innerHTML=shtml; } }); } }); } }); });
7. Layui data table
Table is a common function, but js splicing HTML table is a relatively tedious and error-prone thing. .<!-- team分页table --> <table class="layui-hide" id="teamTable" lay-filter="teamTool"> </table>
<script> layui.use('table',function(){ var table = layui.table;//模块声明 table.render({ elem:'#teamTable' ,method:'get' ,url:getRootPath()+'/team/admin/list' //返回一个List<TeamMember>的list ,cellMinWidth:80 ,cols:[[ {field:'id', title:'ID', sort:true} ,{field:'name', title:'姓名'} ,{field:'birth', title:'出生日期'} //这里的templet值时模板元素的选择器 ,{field:'position', title:'身份'} ,{field:'information', title:'个人信息'} ,{field:'right', title:'操作', toolbar:'#barDemo'} ]] ,page:true //开启分页 }); //监听工具条 table.on('tool(teamTool)', function(obj){ //注:tool是工具条事件名,test是table原始容器的属性 lay-filter="对应的值" var data = obj.data; //获得当前行数据 var layEvent = obj.event; //获得 lay-event 对应的值(也可以是表头的 event 参数对应的值) var tr = obj.tr; //获得当前行 tr 的DOM对象 console.log("id:"+data.id); if(layEvent === 'detail'){ //查看 //do something layer.msg('ID:'+ data.id + ' 的查看操 } else if(layEvent === 'del'){ //删除 layer.confirm('确认删除人员信息?', function(index){ //do something layer.close(index); }); } else if(layEvent === 'edit'){ //编辑 //do something } }); }); </script> <!-- tools --> <script type="text/html" id="barDemo"> <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="detail">查看</a> <a class="layui-btn layui-btn-xs" lay-event="edit">编辑</a> <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a> </script>
layui framework.
The above is the detailed content of Quickly get started with the front-end framework layui. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

Layui login page jump setting steps: Add jump code: Add judgment in the login form submit button click event, and jump to the specified page through window.location.href after successful login. Modify the form configuration: add a hidden input field to the form element of lay-filter="login", with the name "redirect" and the value being the target page address.

layui provides a variety of methods for obtaining form data, including directly obtaining all field data of the form, obtaining the value of a single form element, using the formAPI.getVal() method to obtain the specified field value, serializing the form data and using it as an AJAX request parameter, and listening Form submission event gets data.

The difference between layui and Vue is mainly reflected in functions and concerns. Layui focuses on rapid development of UI elements and provides prefabricated components to simplify page construction; Vue is a full-stack framework that focuses on data binding, component development and state management, and is more suitable for building complex applications. Layui is easy to learn and suitable for quickly building pages; Vue has a steep learning curve but helps build scalable and easy-to-maintain applications. Depending on the project needs and developer skill level, the appropriate framework can be selected.

Adaptive layout can be achieved by using the responsive layout function of the layui framework. The steps include: referencing the layui framework. Define an adaptive layout container and set the layui-container class. Use responsive breakpoints (xs/sm/md/lg) to hide elements under specific breakpoints. Specify element width using the grid system (layui-col-). Create spacing via offset (layui-offset-). Use responsive utilities (layui-invisible/show/block/inline) to control the visibility of elements and how they appear.

The method of using layui to transmit data is as follows: Use Ajax: Create the request object, set the request parameters (URL, method, data), and process the response. Use built-in methods: Simplify data transfer using built-in methods such as $.post, $.get, $.postJSON, or $.getJSON.

layui is a front-end UI framework that provides a wealth of UI components, tools and functions to help developers quickly build modern, responsive and interactive web applications. Its features include: flexible and lightweight, modular design, rich components, Powerful tools and easy customization. It is widely used in the development of various web applications, including management systems, e-commerce platforms, content management systems, social networks and mobile applications.

The layui framework is a JavaScript-based front-end framework that provides a set of easy-to-use UI components and tools to help developers quickly build responsive web applications. Its features include: modular, lightweight, responsive, and has complete documentation and community support. layui is widely used in the development of management backend systems, e-commerce websites, and mobile applications. The advantages are quick start-up, improved efficiency, and easy maintenance. The disadvantages are poor customization and slow technology updates.

layui and vue are front-end frameworks. layui is a lightweight library that provides UI components and tools; vue is a comprehensive framework that provides UI components, state management, data binding, routing and other functions. layui is based on a modular architecture, and vue is based on a componentized architecture. layui has a smaller ecosystem, vue has a large and active ecosystem. The learning curve of layui is low, and the learning curve of vue is steep. Layui is suitable for small projects and rapid development of UI components, while vue is suitable for large projects and scenarios that require rich functions.
