Javascript ES6反应组分中的PureRenderMixin

Javascript ES6反应组分中的PureRenderMixin,javascript,reactjs,ecmascript-6,Javascript,Reactjs,Ecmascript 6,有没有办法在React ES6类组件中包含mixin?(即扩展反应组件)?如果是,官方的做法是什么 我想在我的一个组件中加入PureRenderMixin,该组件具有不可变的状态,以加快扩散过程。根据文档,目前还没有 来源:在ES6风格的React类中,通常有两种混合解决方案: 创建高阶组件(例如) 如果您愿意在Babel中启用早期ES7方案,请使用装饰师(例如) 实际上,我还没有尝试过我为#2链接的库,但装饰器给我的印象是它是Mixin的优雅替代品。如果我想在es6 react组件中使用Mix

有没有办法在React ES6类组件中包含mixin?(即
扩展反应组件
)?如果是,官方的做法是什么


我想在我的一个组件中加入
PureRenderMixin
,该组件具有不可变的状态,以加快扩散过程。

根据文档,目前还没有


来源:

在ES6风格的React类中,通常有两种混合解决方案:

  • 创建高阶组件(例如)
  • 如果您愿意在Babel中启用早期ES7方案,请使用装饰师(例如)
  • 实际上,我还没有尝试过我为#2链接的库,但装饰器给我的印象是它是Mixin的优雅替代品。

    如果我想在es6 react组件中使用Mixin,我会使用它,但我没有尝试使用
    PureRenderMixin

    是一个辅助函数,实现相同的功能 使用带有React的ES6类时,作为PureRenderMixin的功能

    所以,当你使用时,你实际上使用

    更新:

    添加
    React.PureComponent
    ——一个要扩展的新基类,取代了现在混合不适用于ES2015类的情况


    感谢您为我做这项研究:)既然您可以将
    PureRenderMixin
    es6
    一起使用,那么具体的区别是什么?@Tjorriemorrie,如果您谈论像
    this.shoulldComponentUpdate=PureRenderMixin.shoulldComponentUpdate.bind这样的代码(这个),而不是使用
    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);
      },
    };