{"action":"created","issue":{"url":"https://api.github.com/repos/ParsePlatform/parse-dashboard/issues/82","repository_url":"https://api.github.com/repos/ParsePlatform/parse-dashboard","labels_url":"https://api.github.com/repos/ParsePlatform/parse-dashboard/issues/82/labels{/name}","comments_url":"https://api.github.com/repos/ParsePlatform/parse-dashboard/issues/82/comments","events_url":"https://api.github.com/repos/ParsePlatform/parse-dashboard/issues/82/events","html_url":"https://github.com/ParsePlatform/parse-dashboard/issues/82","id":138815748,"number":82,"title":"use shouldComponentUpdate on stateful components","user":{"login":"Aweary","id":6886061,"avatar_url":"https://avatars.githubusercontent.com/u/6886061?v=3","gravatar_id":"","url":"https://api.github.com/users/Aweary","html_url":"https://github.com/Aweary","followers_url":"https://api.github.com/users/Aweary/followers","following_url":"https://api.github.com/users/Aweary/following{/other_user}","gists_url":"https://api.github.com/users/Aweary/gists{/gist_id}","starred_url":"https://api.github.com/users/Aweary/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Aweary/subscriptions","organizations_url":"https://api.github.com/users/Aweary/orgs","repos_url":"https://api.github.com/users/Aweary/repos","events_url":"https://api.github.com/users/Aweary/events{/privacy}","received_events_url":"https://api.github.com/users/Aweary/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":3,"created_at":"2016-03-06T17:47:01Z","updated_at":"2016-03-06T19:31:41Z","closed_at":null,"body":"I looks like there's only [one component](https://github.com/ParsePlatform/parse-dashboard/blob/b7efb406769eeb9c586225060167a5e045299b80/src/dashboard/Push/PushAudiencesData.react.js) that uses `shouldComponentUpdate`.\r\n\r\nReact provides the `shalowCompare` addon which provides functionality similar to the `react-addons-pure-render-mixin` for ES6 classes.\r\n\r\nhttps://facebook.github.io/react/docs/shallow-compare.html\r\n\r\n```js\r\nvar shallowCompare = require('react-addons-shallow-compare');\r\nexport class SampleComponent extends React.Component {\r\n  shouldComponentUpdate(nextProps, nextState) {\r\n    return shallowCompare(this, nextProps, nextState);\r\n  }\r\n\r\n  render() {\r\n    return <div className={this.props.className}>foo</div>;\r\n  }\r\n}\r\n```\r\n\r\nIf the parse team would be open to adding these checks to stateful components, it's a simple implementation which usually comes with decent performance benefits. "},"comment":{"url":"https://api.github.com/repos/ParsePlatform/parse-dashboard/issues/comments/192968813","html_url":"https://github.com/ParsePlatform/parse-dashboard/issues/82#issuecomment-192968813","issue_url":"https://api.github.com/repos/ParsePlatform/parse-dashboard/issues/82","id":192968813,"user":{"login":"peterdotjs","id":2185784,"avatar_url":"https://avatars.githubusercontent.com/u/2185784?v=3","gravatar_id":"","url":"https://api.github.com/users/peterdotjs","html_url":"https://github.com/peterdotjs","followers_url":"https://api.github.com/users/peterdotjs/followers","following_url":"https://api.github.com/users/peterdotjs/following{/other_user}","gists_url":"https://api.github.com/users/peterdotjs/gists{/gist_id}","starred_url":"https://api.github.com/users/peterdotjs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/peterdotjs/subscriptions","organizations_url":"https://api.github.com/users/peterdotjs/orgs","repos_url":"https://api.github.com/users/peterdotjs/repos","events_url":"https://api.github.com/users/peterdotjs/events{/privacy}","received_events_url":"https://api.github.com/users/peterdotjs/received_events","type":"User","site_admin":false},"created_at":"2016-03-06T19:31:40Z","updated_at":"2016-03-06T19:31:40Z","body":"Yup they're all considered experimental and agreed that it doesn't equate to being unstable. My hesitancy is more from ensuring we've proved there are noticeable benefits before adding it in.\r\n\r\nWe haven't done much performance testing but if we can show performance improvement in the component heavy pages (data browser for one) we would totally be open to using it :)"}}