RenderCount(DeepObjet with immutableJS)
by kazu69
HTML
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/0.13.1/JSXTransformer.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/0.13.1/react-with-addons.js"></script>
<script src="https://cdn.rawgit.com/facebook/immutable-js/master/dist/immutable.min.js"></script>
<script src="https://facebook.github.io/react/js/jsfiddle-integration.js"></script>
JavaScript 1.7
var Hello = React.createClass({
mixins: [React.addons.PureRenderMixin],
renderCount: 0,
getInitialState: function() {
return { data: Immutable.Map({count: {value: 0}})};
},
countUp: function() {
var value = this.state.data.update('count',function(v){
var val = v.value + 1;
return { value: val };
});
return this.setState({data: value});
},
fourceUpdate: function() {
this.forceUpdate();
},
render: function() {
this.renderCount += 1;
var data = this.state.data.get('count');
return (
<div>
<div>Count: {data.value}</div>
<div>Render: {this.renderCount}</div>
<button onClick={this.countUp}>Count Up</button>
<button onClick={this.fourceUpdate}>Forde Update</button>
</div>
);
}
});
React.render(<Hello />, document.body);