Reactjs 您可以将React.addons.PureRenderMixin与使用props.children的组件一起使用吗?
例如: 如果Reactjs 您可以将React.addons.PureRenderMixin与使用props.children的组件一起使用吗?,reactjs,Reactjs,例如: 如果MyComponent使用React.addons.PureRenderMixin,调用updateName时,此组件是否会按预期重新呈现 ... render() { return <MyComponent> <HelloWorld name={ this.state.name } /> </MyComponent>; } updateName() { this.setStat
MyComponent
使用React.addons.PureRenderMixin
,调用updateName
时,此组件是否会按预期重新呈现
...
render() {
return <MyComponent>
<HelloWorld name={ this.state.name } />
</MyComponent>;
}
updateName() {
this.setState({name: 'Fred'});
}
。。。
render(){
回来
;
}
updateName(){
this.setState({name:'Fred'});
}
它“在相同的道具和状态下呈现相同的结果”,因此当您调用this.setState({name:'Fred'})
时,它将重新呈现,假设this.state.name!='Fred'
我关心的是MyComponent.props.children===nextrops.children因为MyComponent.props.children===nextrops.children==nextrops.children
在使用React.addons.PureRenderMixin
时,如果MyComponent.props.children==nextrops.children==nextrops
,则不会重新渲染,即使子对象本身没有更改,这意味着PureRenderMixin对于使用props.children的组件实际上是无用的,因为即使子对象没有更改,它也将始终重新渲染。所以,你不能在任何需要孩子的东西上使用PureRenderMixin。如果react组件本身是不可变的,那就很酷了,这样你就可以很容易地确定孩子是否已经改变了