Zach Ramaekers
9 years ago
5 changed files with 37 additions and 2 deletions
@ -0,0 +1,32 @@ |
|||
--- |
|||
id: shallow-compare |
|||
title: Shallow Compare |
|||
permalink: shallow-compare.html |
|||
prev: perf.html |
|||
next: advanced-performance.html |
|||
--- |
|||
|
|||
`shallowCompare` is a helper function to achieve the same functionality as `PureRenderMixin` while using ES6 classes with React. |
|||
|
|||
If your React component's render function is "pure" (in other words, it renders the same result given the same props and state), you can use this helper function for a performance boost in some cases. |
|||
|
|||
Example: |
|||
|
|||
```js |
|||
var shallowCompare = require('react-addons-shallow-compare'); |
|||
export class SampleComponent extends React.Component { |
|||
shouldComponentUpdate(nextProps, nextState) { |
|||
return shallowCompare(this, nextProps, nextState); |
|||
} |
|||
|
|||
render() { |
|||
return <div className={this.props.className}>foo</div>; |
|||
} |
|||
} |
|||
``` |
|||
|
|||
`shallowCompare` performs a shallow equality check on the current `props` and `nextProps` objects as well as the current `state` and `nextState` objects. |
|||
It does this by iterating on the keys of the objects being compared and returning false when the value of a key in each object are not strictly equal. |
|||
|
|||
`shallowCompare` returns `true` if the shallow comparison for props or state fails and therefore the component should update. |
|||
`shallowCompare` returns `false` if the shallow comparison for props and state both pass and therefore the component does not need to update. |
Loading…
Reference in new issue