2015-06-07 41 views
1

说,我这个组件:为什么React更新这部分DOM?

var React= require("react"); 

var LikeButton= React.createClass({ 
    getInitialState: function(){ 
     return {liked: false}; 
    }, 

    handleClick: function(event){ 
     this.setState({liked: !this.state.liked}); 
    }, 

    render: function(){ 
     var text = this.state.liked ? 'like' : 'haven\'t liked'; 
     return (
      <div> 
       <h1>{new Date().toTimeString()}</h1>  
       <p onClick={this.handleClick}> 
        You {text} this. click to toggle. 
       </p> 
      </div> 
     ); 
    } 
}); 

React.render(<LikeButton/>, document.getElementById('mount')); 

当我触发一个事件onClickh1元素获得与当前的日期更新的,为什么呢?

+1

不知道我明白这个问题。您更改组件的状态,组件重新呈现? – Gonfva

+0

*整个*组件会重新渲染,而不是它的某些部分? – tarrsalah

回答

0

当一个组件的状态改变时,它的render方法将会触发。

React documentation

的setState()将总是触发重新呈现,除非条件 渲染逻辑在shouldComponentUpdate()实现。如果正在使用可变对象 并且逻辑不能在 shouldComponentUpdate()中实现,则仅当新状态 与以前的状态不同时调用setState()才能避免不必要的重新呈现。

相关问题