SuperAPI AI 工具集

business-logic-in-components

编程与开发

查看项目

更新于 10-15 17:34

技能介绍

用途:面向所有组件化 UI 开发(React、Vue、Angular、Svelte、SolidJS 等),在讨论、设计、实现、修改、评审或重构组件时提供逻辑分层的判断依据。示例仅使用 React 语法。

主要能力:提出核心原则——组件化 UI 中业务逻辑主要由 UI 与功能需求决定并随之变化,因此逻辑存在于组件中是自然的,但业务逻辑不等于业务规则。建议停用含义模糊的“业务逻辑”,改用四个术语:业务规则(产品/组织定义的真实世界策略、条件、约束与计算方法,指规则本身而非代码)、领域逻辑(表达业务规则的代码)、展示逻辑(与组件耦合的代码,即使表达业务规则也属展示逻辑)、UI 逻辑(展示逻辑的子集,处理展开、选中、聚焦、动画等通用交互,如 shadcn/ui 全属 UI 逻辑)。

使用方式:按角色与所属层区分领域逻辑与展示逻辑,目录结构是最直接的体现方式。与组件耦合的逻辑属于展示/应用层;领域层拥有无需 UI 即可定义和执行的业务规则;展示层可使用领域逻辑,但领域层不得依赖展示关注点。不要仅因 UI 代码中的条件或计算表达了业务规则就称其为领域逻辑——只要仍与 UI 耦合,它就是展示逻辑,可作为值得隔离的领域逻辑候选。

限制与提醒:并非所有代码抽取都是分层。把代码移到某个文件或目录、或改名,都不会改变其所属层;在不改变角色与依赖的前提下,把展示逻辑抽成独立函数、hook、controller 或 presenter,它仍是展示逻辑。例如 React Controller Pattern 中与特定组件一一对应、拥有该组件状态与行为的 controller,应与该组件视为同一实现,这并未分离领域逻辑,只是展示逻辑的物理拆分,类似 MVP 中的 Presenter。资料未提供安装命令、收费、平台或效果信息。