最近Layuid的新公告要在10月份下线官网。不知道有没有人像我一样喜欢看官方的帮助文档。下面是一些简单的总结。
一 下载
1 layui 的自动化构建版本,目录结构如下,更适合用于生产环境。
├─css //css目录
│ │─modules //模块 css 目录(一般如果模块相对较大,我们会单独提取,如下:)
│ │ ├─laydate
│ │ └─layer
│ └─layui.css //核心样式文件
├─font //字体图标目录
└─layui.js //核心库
2 Git 仓库下载
你也可以通过 GitHub 或 码云 得到 layui 的完整开发包。
3. npm 下载 npm i layui
4. 第三方 CDN 方式引入:UNPKG 和 CDNJS 均为第三方开源免费的 CDN。另外还有 LayuiCDN。
href="//unpkg.com/layui@2.6.8/dist/css/layui.css"
二 使用
//layui 模块的定义(新 js 文件)
layui.define([mods], function(exports){
//……
exports('mod', api);
});
//layui 模块的使用
layui.use(['mod1', 'mod2'], function(args){
var mod = layui.mod1;
//……
});
建立模块入口
您可以遵循 layui 的模块规范建立一个入口文件,并通过 layui.use() 方式来加载该入口文件,如下所示:
<script src="./layui/layui.js"></script>
<script>
layui.config({
base: '/res/js/modules/' //你存放新模块的目录,注意,不是 layui 的模块目录
}).use('index'); //加载入口
</script>
上述的 index 即为你 /res/js/modules/ 目录下的 index.js,它的内容应该如下:
/**
index.js 项目 JS 主入口
以依赖 layui 的 layer 和 form 模块为例
**/
layui.define(['layer', 'form'], function(exports){
var layer = layui.layer
,form = layui.form;
layer.msg('Hello World');
exports('index', {}); //注意,这里是模块输出的核心,模块名必须和 use 时的模块名一致
});
从 layui 2.6 开始,如果你引入的是构建后的 layui.js,里面即包含了 layui 所有的内置模块,无需再指定内置模块。如:
/**
index.js 项目 JS 主入口
**/
layui.define(function(){ // 需确保您的 layui.js 是引入的构建后的版本(即官网下载或 git 平台的发行版)
//直接可得到各种内置模块
var layer = layui.layer
,form = layui.form
,table = layui.table;
//…
layer.msg('Hello World');
exports('index', {}); //注意,这里是模块输出的核心,模块名必须和 use 时的模块名一致
});
管理扩展模块(加载扩展模块,即符合规范的JS文件)
如果项目中存放了很多个扩展模块,如下所举:
//mod1.js
layui.define('layer', function(exports){
//…
exports(mod1, {});
});
//mod2.js,假设依赖 mod1 和 form
layui.define(['mod1', 'form'], function(exports){
//…
exports(mod2, {});
});
//mod3.js
//…
//main.js 主入口模块
layui.define('mod2', function(exports){
//…
exports('main', {});
});
上述扩展模块在经过了一定的模块依赖关系后,同样可以合并为一个文件来加载。我们可以借助 Gulp 将上述的 mod1、mod2、mod3、main 等扩展模块构建合并到一个模块文件中:main.js,此时你只需要加载它即可:
<script src="./layui/layui.js"></script>
<script>
layui.config({
base: '/res/js/modules/' //你的扩展模块所在目录
}).use('main'); //这里的 main 模块包含了 mod1、mod2、mod3 等等扩展模块
</script>
这样我们最多只需要加载两个 JS 文件:layui.js、main.js。这将大幅度减少静态资源的请求。