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

简介:

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

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

造成差异的原因:

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

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

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

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

提到了几种手段:

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

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

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

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

一个美丽的远景是:

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

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


目录
相关文章
|
存储 设计模式 前端开发
Streamlit应用中构建多页面(三):两种方案(上)
Streamlit应用中构建多页面(三):两种方案
2703 0
|
2月前
|
前端开发 JavaScript API
掌握React表单管理的高级技巧:探索Hooks和Context API如何协同工作以简化状态管理与组件通信
【8月更文挑战第31天】在React中管理复杂的表单状态曾是一大挑战,传统上我们可能会依赖如Redux等状态管理库。然而,React Hooks和Context API的引入提供了一种更简洁高效的解决方案。本文将详细介绍如何利用Hooks和Context API来优化React应用中的表单状态管理,通过自定义Hook `useForm` 和 `FormContext` 实现状态的轻松共享与更新,使代码更清晰且易于维护,为开发者带来更高效的开发体验。
41 0
|
4月前
|
运维 JavaScript Serverless
函数计算产品使用问题之构建自己的流水线时,已经有一个基础第三方包的层,想在这个基础上进行额外的第三方包安装,该如何实现
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
4月前
|
JSON 弹性计算 前端开发
函数计算产品使用问题之遇到在自定义运行时部署React项目时遇到样式无法正常加载。一般是什么导致的
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
数据可视化
Streamlit应用中构建多页面(三):两种方案(下)
Streamlit应用中构建多页面(三):两种方案
1514 0
|
Kotlin
Flutter 动态表单Dynamic FormField架构设计
Flutter 动态表单Dynamic FormField架构设计
352 0
Flutter 动态表单Dynamic FormField架构设计
|
存储 前端开发 JavaScript
为什么我使用 Umi 的 model 简易数据流管理插件
Umi 是一款企业级的 React 前端应用框架,云巧产业数字组件中心推荐使用基于 Umi 的 Koi 框架统一前端应用研发流程,支撑前端项目从研发、联调到上线、发布的全流程。 本文假设您正在或计划使用 Umi 或 Koi 作为底层框架支撑前端应用的开发,并且对 Umi 有一定的了解。 ## 数据治理的原则 React 的核心特征是“数据驱动视图”,用公式表达即 `UI = render(d
|
SQL 缓存 PHP
Laravel基础篇-路由、视图、模型、Blade模板(2)
Laravel基础篇-路由、视图、模型、Blade模板(2)
146 0
|
缓存 前端开发 关系型数据库
Laravel基础篇-路由、视图、模型、Blade模板(1)
Laravel基础篇-路由、视图、模型、Blade模板(1)
152 0
|
缓存 前端开发 PHP
Laravel基础篇-路由、视图、模型、Blade模板(3)
Laravel基础篇-路由、视图、模型、Blade模板(3)
179 0