Layui 是一个经典的模块化前端框架,以其轻量易用、组件丰富著称。以下是 Layui 的核心语法结构和使用方法:
// 标准模块加载语法
layui.use(['module1', 'module2'], function() {
// 回调函数中获取模块
var mod1 = layui.module1;
var mod2 = layui.module2;
// 模块功能调用
mod1.doSomething();
});
关键点:
layui.use()
是入口函数layui.use('layer', function(){
var layer = layui.layer;
// 基础提示
layer.msg('操作成功');
// 警告框
layer.alert('重要提示');
// 确认对话框
layer.confirm('确定删除吗?', function(index){
layer.msg('已删除');
layer.close(index);
});
});
layui.use('form', function(){
var form = layui.form;
// 表单渲染(必须调用)
form.render();
// 监听提交
form.on('submit(formDemo)', function(data){
console.log(data.field); // 表单字段值
return false; // 阻止表单跳转
});
// 监听复选框
form.on('checkbox(filter)', function(data){
console.log(data.elem.checked);
});
});
layui.use('table', function(){
var table = layui.table;
table.render({
elem: '#dempTable',
url: '/api/data',
cols: [[
{field: 'id', title: 'ID'},
{field: 'name', title: '姓名'},
{field: 'age', title: '年龄'}
]]
});
// 表格重载
table.reload('dempTable', {
where: {key: 'value'}
});
});
layui.use('util', function(){
var util = layui.util;
// 时间戳格式化
util.toDateString(1672531200, 'yyyy-MM-dd'); // 2023-01-01
// 倒计时
util.countdown(new Date(2023, 11, 31), function(date){
console.log(date.seconds);
});
});
左侧
右侧
layui.$('.item').on('click', function(){
layer.msg('元素被点击');
});
// 表单事件
form.on('select(filter)', function(data){
console.log('下拉选择:', data.value);
});
// 表格行点击事件
table.on('row(tableDemo)', function(obj){
console.log('行数据:', obj.data);
});
// 修改默认配置(需在 use 之前)
layui.config({
version: '1.0.0', // 锁定版本
base: '/res/layui/', // 自定义模块路径
debug: true // 开启调试模式
});
// 定义模块
layui.define(function(exports){
var demo = {
hello: function(){
layer.msg('Hello Layui');
}
};
exports('mymodule', demo);
});
// 使用自定义模块
layui.use('mymodule', function(){
layui.mymodule.hello();
});
模块化加载原则:
// ✅ 正确方式:按需加载
layui.use(['form', 'layer'], function(){
// 初始化逻辑
});
// ❌ 避免直接访问(可能未加载)
var layer = layui.layer;
DOM 操作时机:
layui.use(function(){
// ✅ DOM 操作放在这里(确保元素已渲染)
layui.$('.btn').on('click', handler);
});
版本控制:
扩展方法封装:
layui.extend({
myutil: '/js/myutil' // 扩展工具库
});
layui.use('myutil', function(){
layui.myutil.customMethod();
});
Layui 遵循"经典模块化"理念,掌握
use()->获取模块->调用功能
这一核心链路,就能快速上手 80% 的日常开发任务。表格、表单、弹窗三大组件满足后台系统基础需求,配合布局和工具类可快速构建响应式页面。