hushicai / hushicai.github.io

Blog
https://hushicai.github.io
27 stars 1 forks source link

React核心思想 #10

Open hushicai opened 5 years ago

hushicai commented 5 years ago

React 的核心开发者之一的 Sebastian Markbåge 认为:

UI 只是把数据通过映射关系变成另一种形式的数据。 给定相同的输入(数据)必然会有相同的输出(UI),即一个简单的纯函数。

我们可以把这句话高度抽象成一个纯函数:State => View

虽说 View 层可以当成是State的另外一种展现形式,但在实际的 React 开发中,除了数据的展示以外,更重要的是还有数据请求以及用户交互等。

如果我们把数据请求、用户交互等这些带有副作用的操作都耦合到一个组件中,那么这个组件就不再是一个"纯函数",这种组件通常都比较难以复用和测试。

所以,在实际开发中,应该严格区分 Container Component 和 Presentational Component 的职责,Container Component负责请求数据、处理用户交互,Presentational Component负责展示数据,最大化复用Presentational Component,同时也方便对Presentational Component进行测试。