所有React组件必须像纯函数那样,不能改变其props
2018-09-07 本文已影响41人
AC编程
一、Props are Reaad-Only(Props是只读的)
- 不论是通过函数的方式,还是类的方式声明一个组件,组件绝不能修改自己的props。
- React非常灵活,但它有一个严格的规则:所有React组件必须像纯函数那样,不能改变其props。当然,应用程序的UI是动态的,随时间变化。state允许React组件随时间变化而改变它们的输出,以此来响应用户操作、网络响应或其他任何内容,而不违反上述规则。
二、什么是“纯函数”
- 纯函数是指 不依赖于且不改变它作用域之外的变量状态 的函数。
- 简单来说,一个函数的返回结果只依赖于它的参数,并且在执行过程里面没有副作用,我们就把这个函数叫做纯函数。
看看一下这个sum函数:
function sum(a, b) {
return a + b;
}
这类函数被称为‘pure’,因为它们不试图改变它们的输入,并且对于相同的输入总是返回相同的结果。
相反,下面这个函数是不纯的,因为它改变了自己的输入:
function withdraw(account, amount) {
account.total -= amount;
}