You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
45 lines
1.4 KiB
45 lines
1.4 KiB
/** |
|
* Copyright (c) 2013-present, Facebook, Inc. |
|
* |
|
* This source code is licensed under the MIT license found in the |
|
* LICENSE file in the root directory of this source tree. |
|
* |
|
*/ |
|
|
|
'use strict'; |
|
|
|
var shallowCompare = require('./shallowCompare'); |
|
|
|
/** |
|
* If your React component's render function is "pure", e.g. it will render the |
|
* same result given the same props and state, provide this mixin for a |
|
* considerable performance boost. |
|
* |
|
* Most React components have pure render functions. |
|
* |
|
* Example: |
|
* |
|
* var ReactComponentWithPureRenderMixin = |
|
* require('ReactComponentWithPureRenderMixin'); |
|
* React.createClass({ |
|
* mixins: [ReactComponentWithPureRenderMixin], |
|
* |
|
* render: function() { |
|
* return <div className={this.props.className}>foo</div>; |
|
* } |
|
* }); |
|
* |
|
* Note: This only checks shallow equality for props and state. If these contain |
|
* complex data structures this mixin may have false-negatives for deeper |
|
* differences. Only mixin to components which have simple props and state, or |
|
* use `forceUpdate()` when you know deep data structures have changed. |
|
* |
|
* See https://facebook.github.io/react/docs/pure-render-mixin.html |
|
*/ |
|
var ReactComponentWithPureRenderMixin = { |
|
shouldComponentUpdate: function (nextProps, nextState) { |
|
return shallowCompare(this, nextProps, nextState); |
|
} |
|
}; |
|
|
|
module.exports = ReactComponentWithPureRenderMixin; |