对构建可复用WebUI组件的思考

简介:

去公司内部的交流活动参数了一个讲“构建可复用的 WebUI 组件模型”的交流,前面对 WebUI 差异性的分析引发了我的一些思考。

与软件(我猜指的是桌面软件)的 UI 实现不同,WebUI 的实现变动大。我会认为,给予了更多我的实现手段。

造成差异的原因:

  1. 设计风格
  2. 代码实现

关于第一点,不同的人,希望看到的界面是不同的,具体来说,界面上的 CSS 不同,图不同, DOM 结构不同。

关于第二点,因为交互的需求不同,同时因为不同的程序员和不同的实现思路,那么写出来的所有代码都可能不同。

我们的目的,是在于包容上面两种差异的情况下,来实现组件的复用。(不过,我没有在 topic 中听到怎么去解决)

提到了几种手段:

  1. 类的继承
  2. 类的组合
  3. 模板系统

这些手段我们都知道,不过,任何一种,至少在现在,我看都不太容易完善地解决以上两种差异产生的问题。

要把界面外观,和交互实现相分离,同时实现复用,我个人认为,必须使两方面在某个点,以约定的规则进行无须沟通的统一。而这个规则的实现,才是我们应该思考的。 任何单方面的去考虑怎么去封装 js 代码,然后让前端开发者去复用,都不可能解决上面所说的差异

需要同时考虑前端开发者的复用,和前端设计师的复用。而且,这两者复用,还要统一,无须沟通。

一个美丽的远景是:

  • 前端开发写代码时不关心具体的页面是什么样,写出的代码没问题,则界同上的交互没有问题。
  • 设计做页面不关心交互的流程,页面通过规则验证,则可以保证交互实现不会出问题。

无法完美实现的话,我们只是经常考虑在哪些方面妥协。


目录
相关文章
|
机器学习/深度学习 自然语言处理 算法
Stable Diffusion WebUI 从零基础到入门
Stable Diffusion WebUI 从零基础到入门
868 1
|
JSON 机器人 API
如何快速在钉钉群接入私有大模型
利用阿里云计算巢Appflow,通过控制台配置即可顺利将您自己开发或微调的大模型接入钉钉或其他通信软件群聊,帮您解决以下各类场景的模型调用需求: 1. 在钉钉群接入自己微调的领域大模型做问答或智能答疑; 2. 微调后的大模型在钉钉群或其他群聊中共同测试效果 3. …
|
3月前
|
边缘计算 监控 Java
跨境电商 API 对接避坑指南:亚马逊 SP-API 超时问题的 5 种解决方案(附重试代码模板)
在对接亚马逊 SP-API 时,超时问题常导致订单延迟、库存失败,影响运营。本文总结某 3C 品牌实战经验,详解超时的 3 大根源与 5 大解决方案,涵盖动态超时、重试机制、请求拆分、并发控制与边缘加速,并附可复用 Python 代码,助你将超时率从 20% 降至 1% 以下。
|
JavaScript
Vue 登录组件工程模板
当前工程使用 Vite 构建工具
|
数据安全/隐私保护 Windows
|
Python Windows
Python colorama | 详解终端漂亮的彩色打印怎么实现的
命令行可以按照我们的设定完成相应的工作,相比 GUI 界面程序,无需花费大量时间设计 GUI 界面。但要使命令行程序更吸引人,仅使用普通的打印功能是无法实现的。
1328 0
Python colorama | 详解终端漂亮的彩色打印怎么实现的
|
机器学习/深度学习 人工智能 程序员
2023年 团体程序设计天梯赛个人感悟及总结(附题解)——遗憾国三
⭐L1一阶题 ⭐L1-089 最好的文档 (5分)—水题 👉👉👉👉👉👉L1-089 最好的文档👈👈👈👈👈👈 有一位软件工程师说过一句很有道理的话:“Good code is its own best documentation.”(好代码本身就是最好的文档)。本题就请你直接在屏幕上输出这句话。 输入格式: 本题没有输入。 输出格式: 在一行中输出 Good code is its own best documentation.。 输入样例: 无 输出样例: Good code is its own best documentation.
946 0
|
机器学习/深度学习 达摩院 监控
阿里巴巴开源联邦学习框架 FederatedScope,降低隐私保护计算技术开发应用难度
5 月 5 日,阿里巴巴达摩院发布新型联邦学习框架FederatedScope,该框架支持大规模、高效率的联邦学习异步训练,能兼容不同设备运行环境,且提供丰富功能模块,大幅降低了隐私保护计算技术开发与部署难度,该框架现已面向全球开发者开源。
1567 0
阿里巴巴开源联邦学习框架 FederatedScope,降低隐私保护计算技术开发应用难度
|
Java 应用服务中间件 编译器
IDEA 创建不同类型 Project 和 Module 详解
IDEA 创建不同类型 Project 和 Module 详解
IDEA 创建不同类型 Project 和 Module 详解