Javascript ES6反应组分中的PureRenderMixin
有没有办法在React ES6类组件中包含mixin?(即Javascript ES6反应组分中的PureRenderMixin,javascript,reactjs,ecmascript-6,Javascript,Reactjs,Ecmascript 6,有没有办法在React ES6类组件中包含mixin?(即扩展反应组件)?如果是,官方的做法是什么 我想在我的一个组件中加入PureRenderMixin,该组件具有不可变的状态,以加快扩散过程。根据文档,目前还没有 来源:在ES6风格的React类中,通常有两种混合解决方案: 创建高阶组件(例如) 如果您愿意在Babel中启用早期ES7方案,请使用装饰师(例如) 实际上,我还没有尝试过我为#2链接的库,但装饰器给我的印象是它是Mixin的优雅替代品。如果我想在es6 react组件中使用Mix
扩展反应组件
)?如果是,官方的做法是什么
我想在我的一个组件中加入
PureRenderMixin
,该组件具有不可变的状态,以加快扩散过程。根据文档,目前还没有
来源:在ES6风格的React类中,通常有两种混合解决方案:
PureRenderMixin
是一个辅助函数,实现相同的功能
使用带有React的ES6类时,作为PureRenderMixin的功能
所以,当你使用时,你实际上使用
更新:
添加React.PureComponent
——一个要扩展的新基类,取代了现在混合不适用于ES2015类的情况
感谢您为我做这项研究:)既然您可以将PureRenderMixin
与es6
一起使用,那么具体的区别是什么?@Tjorriemorrie,如果您谈论像this.shoulldComponentUpdate=PureRenderMixin.shoulldComponentUpdate.bind这样的代码(这个)在构造函数中使用code>,而不是使用shallowCompare
addone的另一种方法。看见
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);
},
};