ReactJS:在React中,不变性助手的真实世界使用是什么?
发布时间:2020-12-15 20:50:20 所属栏目:百科 来源:网络整理
导读:React的官方文档提供了 Immutability Helpers. 这些助手会有什么现实世界的用法?我想我错过了一些非常基本的东西. React假定在状态中设置的对象是不可变的,这意味着如果要添加或删除数组中的某个元素,您应该创建一个带有添加元素的新元素,保持前一个数组不
React的官方文档提供了
Immutability Helpers.
这些助手会有什么现实世界的用法?我想我错过了一些非常基本的东西.
React假定在状态中设置的对象是不可变的,这意味着如果要添加或删除数组中的某个元素,您应该创建一个带有添加元素的新元素,保持前一个数组不变:
var a = [1,2,3]; var b = React.addons.update(a,{'$push': [4] }); console.log(a); // [1,3]; console.log(b); // [1,3,4]; 通过使用不可变对象,您可以轻松检查对象的内容是否已更改: React.createClass({ getInitialState: function () { return { elements: [1,3] }; },handleClick: function() { var newVal = this.state.elements.length + 1; this.setState({ elements: React.addons.update(this.state.elements,{ '$push': [ newVal ] }) }) },shouldComponentUpdate: function (nextProps,nextState) { return this.state.elements !== nextState.elements; },render: function () { return ( <div onClick={this.handleClick}>{ this.state.elements.join(',') }</div> ); } }); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- c# – 在这种情况下,为什么使用AsParallel()比foreach慢?
- 采用加载XML文件的形式组转通讯报文,通过类似EL表示的方式
- view.inflate异常:Binary XML file line #34: Error infla
- c# – VB.NET linq组与匿名类型不能按预期工作
- Binary XML file line : Error inflating class <unknown
- c# – 如何访问静态Web方法中的页面控件?
- c# – 如何消除Switch语句?
- 使用TinyXML输出的XML文件在Android 下的注意事项
- vue v-for动画bug
- Unity3d之LitJson例子解析+XML