博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
前端UI组件复用工具
阅读量:6899 次
发布时间:2019-06-27

本文共 1344 字,大约阅读时间需要 4 分钟。

“懒”是第一生产力。

代码复用总是程序员喜闻乐见的,前端组件化的最终目的就是复用,今天我们就将深入探讨如何实现UI组件的复用。

通常我们所说的组件往往是包含业务逻辑的前端组件,而这类组件实际上很难实现广义上的复用,顶多能在同一条业务线上复用一下,但UI组件就不一样了,没有了业务的约束,只在UI层面上实现复用,那想象空间就很大了,所以这里我们只讨论UI组件。

首先界定一下,UI组件就是一个web界面的前端代码片段,虽然说不包含业务,但基本的JS效果是可以有的,比如表单验证、轮播图效果、选项卡效果等等,也就是说UI组件可以包括htmlcssjs。我们复用的目的并不是简单的复制粘贴,而是希望可以实现一定程度上的自定义,比如界面内容可以调整、显示样式可以调整,甚至JS效果也可以加以设置,这样才算真正有实用价值的组件复用。

那么我们就来构思一下如何达到以上目的。首先最核心的就是组件自定义功能,自定义意味着一个组件的htmlcssjs代码都可以被修改,并且编辑过程要所见即所得。这个功能我们可以借助模板引擎实现,思路是,将组件代码全部用模板语法来写,然后抽出来一份配置数据,模板引擎用这份数据解析模板,就得到了最终浏览器可以运行的代码。修改配置的过程也就是编辑配置数据的过程,编辑后实时调用模板引擎,重新解析得到新的代码,再将代码实时更新到浏览器中,就实现了编辑过程所见即所得。

拆解一下,这个功能大致需要实现以下几个部分:组件代码的获取、配置数据的可视化、模板引擎的调用、配置文件编辑、组件演示、组件html/css/js代码复制。

再延伸一下,组件代码的自动获取想必要依赖一定的组织规律,那么就要先约定好组件的管理方式。比如约定组件由一个文件夹组成,内部包含temp.html/style.css/script.js三个模板文件,再加上一个config.json配置数据文件。组件应该有一个总的存放文件夹作为组件库,为了能获取到组件的信息,组件库还需要一个目录文件,提供所有组件的列表以及每一个组件的信息,这样就可以通过这个目录获取到组件的模板、配置以及任何我们需要的信息了。

基于以上分析已经可以着手开发一个UI组件管理工具了,能够实现组件管理、预览、编辑、代码复制功能。

如果止步于此,那这个工具的实用价值不是很大。围绕前端代码复用,还可以进一步扩展功能,比如是否可以从设计环节就开始参与到前端组件管理呢?由设计师发布并维护公司内部UI组件库,在项目设计阶段,就可以从组件库中挑选基础组件加以调整,并将结果交付给前端,前端只需要将设计师的组件还原,就可以得到能直接用于项目的前端代码了。

回顾一下,这里面需要组件库实现的功能是,将组件的编辑结果生成一个特殊代码,这个代码用来在管理工具内还原组件的编辑现场,从而实现设计过程到前端开发的交接。这个功能的实现原理是将组件原始配置与所修改配置做合并,得到组件的修改后配置,再用于组件的渲染和展示,就可以还原设计现场了。

到这里我们需要的功能就基本完整了,目前这个工具已经开发完成,并在以上功能的基础上,又增加了用户管理和使用统计,有助于更好的优化组件库建设。

源码:

预览:

如果项目对你有帮助,请去Github尽情的star不要客气。

转载地址:http://rgpdl.baihongyu.com/

你可能感兴趣的文章
冲刺博客 五
查看>>
poj 2389 大整数乘法
查看>>
JSON.stringify JSON.parse
查看>>
java中二进制的程序表示_Java程序检查两个数字的二进制表示形式是否为字谜
查看>>
java web maven 框架_maven web框架搭建
查看>>
java实现数据排序_分析Java程序员如何实现数据排序
查看>>
java libraries在哪_java.library.path在哪? | 学步园
查看>>
java数据结构循环链表_JAVA 数据结构链表操作循环链表
查看>>
php如何连接access,PHP如何连接Access数据库_PHP教程
查看>>
通过php使用cmd命令,window系统下使用cmd执行php命令
查看>>
项目重构经验php转java,这几年从 PHP 转到 Java 的有成功案例吗?
查看>>
java中多个条件模糊查询,带条件的查询—模糊查询
查看>>
matlab生成多个随机数,利用matlab(或其他任何方式)生成100个随机数,并编制C语言程序进行从 小到大排序。...
查看>>
matlab saveas 文件名无效,一直出现错误使用save,文件无法写入
查看>>
mysql引擎选择语句,MySQL存储引擎(表类型)的选择
查看>>
head first java 195,head first java解决办法
查看>>
php数组偏移,不能在php中使用字符串偏移作为数组
查看>>
matlab 版本控制,matlab – 许多不相关文件的版本控制
查看>>
matlab 调整视角,(专题四)05 matlab视角处理
查看>>
php去除正斜杠,php怎么去掉斜线
查看>>