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);