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> ); } });
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。