2

我们以成功的方式遵循原子设计在我们的库中组织我们的 ReactJS 组件。在构建了几十个组件之后,我们开始对如何组织有机体产生根本性的疑问。

我们的目标是建立一个经验法则,以便我们可以构建代码管理工具来正确处理组件,并为我们的团队提供一个标准来选择将新创建的组件放在哪里。

以下是我们采用的规则:

Atoms:是在库中不包含任何其他组件的组件。因此,它不应有任何import来自其他原子组件。

分子:是只能导入原子的组件。因此,如果该组件具有一个import NNN from '../atoms/...',它将被视为一个分子。分子不能从自身(分子库)导入成分,只能从原子导入。

在有机体中,我们有第一个基本疑问。我将其描述为 3 个选项:

选项 A:

有机体:这些是只能导入分子的成分。所以只import NNN from '../molecules/...'允许在有机体上。如果您必须在同一组件中导入一个分子和一个原子,它将被视为一个有机体。

选项 B:

有机体:这些是只能导入分子或分子和原子的组件。因此,仅允许import NNN from '../molecules/...'或与生物import NNN from '../molecules/...'一起使用。import NNN from '../../atoms/...'

选项 C:

有机体:这些组件只能导入分子或分子和原子或分子和原子和有机体。因此,仅允许生物体上或与一起或一起import NNN from '../molecules/...'与一起。import NNN from '../molecules/...'import NNN from '../../atoms/...'import NNN from '../molecules/...'import NNN from '../../atoms/...'import NNN from '../../molecules/...'

模板:这些组件可以将较低层次结构中的所有组件(原子、分子和有机体)一起导入。如果它导入一个单一的有机体,它就是一个模板。当然,这里可以导入的内容取决于上面的生物选择决定。

Pages:可以导入所有内容,因为它的目标是将内容放在较低层次结构的元素上。

有机体决策将影响层次结构的深度以及库的使用。

似乎原子设计方法将其概念转移到有机体(带有模板和页面)之上,因此有机体应该是较低级别组件的更高聚合器(选项 C),但我们可以创建一个新级别,将所有聚合保持在模板级别,因此模板将不仅仅是页面结构,实际上是组件结构。

这在 ReactJS 库开发方面是否有意义,什么选项最适合开发策略?

4

1 回答 1

0

这篇文章完美地解释了原子设计方法论:

http://atomicdesign.bradfrost.com/chapter-2/

引用您需要的内容:

有机体是由分子组和/或原子和/或其他有机体组成的相对复杂的 UI 组件。这些有机体形成界面的不同部分。

于 2018-08-07T09:51:34.030 回答