加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

reactjs – 为什么React道具不可变?

发布时间:2020-12-15 05:06:17 所属栏目:百科 来源:网络整理
导读:我一直在阅读React的 Quick Start文档; Whether you declare a component as a function or a class,it must never modify its own props 这是一个“纯”函数,因为它不会尝试更改其输入,并且始终为相同的输入返回相同的结果: function sum(a,b) { return a
我一直在阅读React的 Quick Start文档;

Whether you declare a component as a function or a class,it must never modify its own props

这是一个“纯”函数,因为它不会尝试更改其输入,并且始终为相同的输入返回相同的结果:

function sum(a,b) {
  return a + b;
}

这是一个“不纯”的功能,因为它改变了自己的输入:
https://codesandbox.io/s/9z38xv4x7r

function SayHi(props) {
  props.name = "Jim"; // TypeError Cannot assign to read only property 'name' of object '#<Object>'
  return <h1>Hi {props.name}!</h1>;
}

为什么React道具是只读的?

组件应该管理自己的状态,但它不应该管理自己的道具.道具本质上是“由组件所有者管理的状态”.这就是道具不可改变的原因.

React docs还建议将状态视为不可变.这是因为通过直接操作this.state,你正在绕过React的状态管理,这可能是有潜在危险的,因为之后调用setState()可能会替换你所做的突变.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读