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文档;
这是一个“纯”函数,因为它不会尝试更改其输入,并且始终为相同的输入返回相同的结果: function sum(a,b) { return a + b; } 这是一个“不纯”的功能,因为它改变了自己的输入: 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()可能会替换你所做的突变. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |