焦点

layui网站源码

时间:2010-12-5 17:23:32  作者:探索   来源:热点  查看:  评论:0
内容摘要: 打开layui的下载页面,你看到的是一个压缩包,解压后是三个文件夹:css、js、fonts。就这么点东西,连个构建工具都没有。但恰恰是这份“简陋”,让它在国内前端圈子里活了好几年,直到今天还有人在

打开layui的站源下载页面,你看到的站源是一个压缩包,解压后是站源三个文件夹:css、js、站源fonts。站源就这么点东西,站源连个构建工具都没有。站源但恰恰是站源这份“简陋”,让它在国内前端圈子里活了好几年,站源直到今天还有人在用。站源

我最初接触layui是站源2018年,那时候vue已经火得不行了。站源公司老项目要加个后台管理界面,站源让我自己写。站源我看了看vue的站源脚手架,又看了看layui的文档,最后选了后者。原因很直白:我只需要一个表格,几个表单,一个弹窗,layui的文档里三分钟就能找到对应的组件和用法。不需要npm install,不需要webpack配置,一个script标签引进来就能跑。

layui的源码结构相当清晰。核心是layui.js,里面是一个模块加载器,类似简化版的requirejs。它把每个组件都拆成独立模块,比如laytpl是模板引擎,laypage是分页,laydate是日期选择器。你用到哪个,就layui.use(['table', 'form']),它内部会按需加载对应的js和css。这种设计在现在看来不算先进,但胜在直观,而且所有模块都是自包含的,不依赖第三方库。

有意思的是它的样式方案。layui没有采用当时流行的less或sass,而是直接用原生css,配合一套自己的变量命名规则。你看它的css文件,类名都是layui-前缀,比如layui-btn、layui-input、layui-table。这种命名方式虽然不够优雅,但好处是全局污染极小,你不用担心跟项目里其它样式冲突。我见过不少项目,整个后台都是layui的默认风格,灰底白字,圆角按钮,谈不上好看,但至少干净利落,不会出错。

源码里最值得琢磨的是它的表单验证模块。layui的form.on('submit()')监听机制,配合内置的校验规则,比如required、phone、email,用起来确实方便。但你要是翻源码,会发现它的实现其实很朴素——就是给表单元素绑定submit事件,然后遍历每个带有lay-verify属性的input,用正则去匹配。没有复杂的异步校验链,没有自定义规则组合,但足够应付百分之八十的后台表单场景。

后来我接手过一个用layui写的项目,数据量大概几千条,表格渲染用的是它内置的table模块。说实话,性能不算好,每次刷新都要重新请求接口,然后前端分页时会有明显的卡顿。我一度想换掉它,但看了看项目里那些已经写好的layui事件绑定和模板语法,还是放弃了。换框架的成本远高于忍受那几秒钟的延迟。

layui的源码里还藏着一个彩蛋,就是它的laytpl模板引擎。这个模块的代码量很小,但功能完整,支持简单的表达式和循环。你可以在html里写