Skip to content

Latest commit

 

History

History
44 lines (33 loc) · 1.59 KB

addons-pure-render-mixin.md

File metadata and controls

44 lines (33 loc) · 1.59 KB
id title permalink layout category
pure-render-mixin
PureRenderMixin
docs/pure-render-mixin.html
docs
Add-Ons

Note:

PureRenderMixin is a legacy add-on. Use React.PureComponent instead.

Importing

import PureRenderMixin from 'react-addons-pure-render-mixin'; // ES6
var PureRenderMixin = require('react-addons-pure-render-mixin'); // ES5 with npm

Overview {#overview}

If your React component's render function renders the same result given the same props and state, you can use this mixin for a performance boost in some cases.

Example:

const createReactClass = require('create-react-class');

createReactClass({
  mixins: [PureRenderMixin],

  render: function() {
    return <div className={this.props.className}>foo</div>;
  }
});

Under the hood, the mixin implements shouldComponentUpdate, in which it compares the current props and state with the next ones and returns false if the equalities pass.

Note:

This only shallowly compares the objects. If these contain complex data structures, it may produce false-negatives for deeper differences. Only mix into components which have simple props and state, or use forceUpdate() when you know deep data structures have changed. Or, consider using immutable objects to facilitate fast comparisons of nested data.

Furthermore, shouldComponentUpdate skips updates for the whole component subtree. Make sure all the children components are also "pure".