[英]PureRenderMixin in an ES6 React component
有没有办法在React ES6类组件中包含mixin? (即extends React.Component
)? 如果是这样,官方的做法是什么?
我想将PureRenderMixin
包含在我的一个具有不可变状态的组件中,以加快差异化过程。
https://facebook.github.io/react/docs/shallow-compare.html
shallowCompare是一个辅助函数,可以在使用带有React的ES6类时实现与PureRenderMixin相同的功能。
import shallowCompare from 'react-addons-shallow-compare';
export default class SampleComponent extends React.Component {
shouldComponentUpdate(nextProps, nextState) {
// pure render
return shallowCompare(this, nextProps, nextState);
}
render() {
return <div className={this.props.className}>foo</div>;
}
}
var ReactComponentWithPureRenderMixin = {
shouldComponentUpdate: function(nextProps, nextState) {
return shallowCompare(this, nextProps, nextState);
},
};
因此,当您使用PureRenderMixin
,您实际上使用shallowCompare
更新15.3.0 :
添加
React.PureComponent
- 一个新的基类来扩展,替换react-addons-pure-render-mixin
,因为mixin不能与ES2015类一起使用。
根据文件,还没有。
资料来源: http : //facebook.github.io/react/docs/reusable-components.html#no-mixins
如果我想在我的es6反应组件中使用mixins,我会使用react-mixin ,但我没有尝试使用PureRenderMixin
这个库。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.