javascript – 必须React组件就其道具而言就像纯函数一样吗?

前端之家收集整理的这篇文章主要介绍了javascript – 必须React组件就其道具而言就像纯函数一样吗?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我正在阅读React文档并阅读这一行(加粗他们的):

All React components must act like pure functions with respect to their props.

这是严格的要求还是设计原则,以避免意外行为?

Facebook提供的“不纯”功能的示例是修改其输入的功能.但看起来React组件可能会修改它作为输入接收的道具(我已经在下面的例子中反映了他们自己的例子).

Code Pen: Impure Component w/ Respect to Props?

JSX代码

var Withdraw = React.createClass({
  render() {
    this.props.account.balance -= this.props.amount;
    return (
      

另外:我知道上面的内容可以写成无状态的功能组件,并且该状态不应该存储在this.state之外.

最佳答案
像facebook说的,如果你需要它改变.使用状态.

功能必须是纯粹的,意义

>在给定相同参数值的情况下,函数始终评估相同的结果值.函数结果值不能取决于程序执行过程中或程序的不同执行之间可能发生变化的任何隐藏信息或状态,也不依赖于I / O设备的任何外部输入.
>评估结果不会导致任何语义上可观察到的副作用或输出,例如可变对象的突变或输出到I / O设备.

换句话说,一个纯粹的功能

>给定相同的输入,将始终返回相同的输出.
>不产生副作用
.没有外部状态.

React is pretty flexible but it has a single strict rule:

All React components must act like pure functions with respect to
their props.

Of course,application UIs are dynamic and change over time. In the
next section,we will introduce a new concept of “state”. State allows
React components to change their output over time in response to user
actions,network responses,and anything else,without violating this
rule.

你的Facebook Link

这是一个不错的article

更多关于pure functions

原文链接:https://www.f2er.com/js/429112.html

猜你在找的JavaScript相关文章