设计原则

把UI拆分为一个组件的层级

但是你如何知道什么东西应该是独立的组件?只需在你创建一个函数或者对象时,根据是否使用过相同技术来做决定。一种这样的技术是单一功能原则(single responsibility principle),也就是一个组件在理想情况下只做一件事情。如果它最终增长了,它就应该被分解为更小的组件。

例如:

  • FilterableProductTable
    • SearchBar
    • ProductTable
      • ProductCategoryRow
      • ProductRow

用React创建一个静态版本

要构建一个静态版本 app 来渲染你的数据模型,你将会想到构建一个重用其它组件并利用 props 传递数据的组件。props 是一种从父级传递数据到子级的方式。

确定最小(但完备)的 UI state 表达

要正确的构建你的 app,你首先需要思考你的 app 需要的可变 state 的最小组。这里的关键是 DRY 原则:Don't Repeat Yourself(不要重复自己)。想出哪些是你的应用需要的绝对最小 state 表达,并按需计算其他任何数据。

让我们逐个检查出哪一个是state,只需要简单地问以下三个问题:

  1. 它是通过props从父级传递来的吗?如果是,它可能不是 state。
  2. 它随时间变化吗?如果不是,它可能不是 state。
  3. 你能基于其他任何组件里的 state 或者 props 计算出它吗?如果是,它可能不是state.

确定你的 state 应该存在于哪里

记住:React 总是在组件层级中单向数据流动的。

对于你的应用里每一个数据块:

  • 确定哪些组件要基于 state 来渲染内容。
  • 找到一个共同的拥有者组件(在所有需要这个state组件的层次之上,找出共有的单一组件)。
  • 要么是共同拥有者,要么是其他在层级里更高级的组件应该拥有这个state。
  • 如果你不能找到一个组件让其可以有意义地拥有这个 state,可以简单地创建一个新的组件 hold 住这个state,并把它添加到比共同拥有者组件更高的层级上。

添加反向数据流

results matching ""

    No results matching ""