Browse Source

implement shouldComponentUpdate to make the re-render much faster for Checkbox

pull/1992/head
Leon Shi 9 years ago
parent
commit
71fc0774c0
  1. 4
      components/checkbox/Group.jsx
  2. 4
      components/checkbox/index.jsx
  3. 1
      package.json

4
components/checkbox/Group.jsx

@ -1,5 +1,6 @@
import React from 'react';
import Checkbox from './index';
import PureRenderMixin from 'react-addons-pure-render-mixin';
export default class CheckboxGroup extends React.Component {
static defaultProps = {
@ -30,6 +31,9 @@ export default class CheckboxGroup extends React.Component {
});
}
}
shouldComponentUpdate(...args) {
return PureRenderMixin.shouldComponentUpdate.apply(this, args);
}
getOptions() {
const { options } = this.props;
return options.map(option => {

4
components/checkbox/index.jsx

@ -2,12 +2,16 @@ import RcCheckbox from 'rc-checkbox';
import React from 'react';
import CheckboxGroup from './Group';
import classNames from 'classnames';
import PureRenderMixin from 'react-addons-pure-render-mixin';
export default class Checkbox extends React.Component {
static Group = CheckboxGroup;
static defaultProps = {
prefixCls: 'ant-checkbox',
}
shouldComponentUpdate(...args) {
return PureRenderMixin.shouldComponentUpdate.apply(this, args);
}
render() {
const { prefixCls, style, children, className, ...restProps } = this.props;
const classString = classNames({

1
package.json

@ -70,6 +70,7 @@
"rc-upload": "~1.13.0",
"rc-util": "~3.1.3",
"react-slick": "~0.12.0",
"react-addons-pure-render-mixin": "~15.1.0",
"warning": "~3.0.0"
},
"devDependencies": {

Loading…
Cancel
Save