当UI或视图层被描述为应用程序状态

时间:2017-05-02 18:50:24

标签: javascript reactjs redux react-redux

我是Redux的新手并按照redux的教程发现评论 -

  

当UI或视图层被描述为应用程序状态的纯函数时,它是最可预测的

有人可以用外行的方式向我解释,在描述为应用程序的纯函数时,UI的可预测性是什么意思。

2 个答案:

答案 0 :(得分:2)

视图层不应该进行任何数据操作,它应该只输出它所呈现的数据。这可以防止任何人在数据操作期间出现任何错误,这会导致不安全的数据(如果视图在输入上进行矩阵旋转,则还需要恢复矩阵旋转以确保数据保持一致)。 p>

假设有一个带有分数的游戏板(跳棋,例如你已经完成了多少次跳跃)。将分数存储在state的某个位置(每次你跳过对手的棋子,增加分数)将是“纯粹的”,让视图计算分数是“不纯的”(最初有) 12个棋盘,经过棋盘迭代后我们可以看到5个左侧,这意味着我们跳了7个。

在另一种情况下,我们可能希望在计算分数时改变状态(如果你正在制作一个魔方解算器,分数可能是“最佳解决方案有多接近?”,此时矩阵旋转将需要执行以确保解决方案,并测试可能的变体。)每次启动干净状态更容易,还是小心撤消所做的一切?

另一个关于纯度的标注是避免随机性的头痛。 如果状态是一致的,但由于某些随机性/杂质,每次都会以不同的方式呈现视图,因此测试变得越来越困难。

答案 1 :(得分:1)

  

当UI或视图层被描述为a时,它是最可预测的   应用程序状态的纯函数

关于分离关注的想法。

所以UI职责是: - 显示传递的数据。 - 检测用户交互,例如点击。

redux中UI的逻辑通常在容器和相关模块中实现。 容器将数据传递给UI。