setstate的回调函数与componentDidUpdate的作用几乎是相同的,但是setstate的回调函数只针对于与其绑定的setstate更新后才会触发,而componentDidUpdate针对于全局的setstate更新后都会触发,相当于页面中只要有setstate的更新,那么componentDidUpdate就会触发。
所以从性能上考虑,如果某个函数只需要在其绑定的setstate里触发时,就不需要写在componentDidUpdate,以此来提高性能。
onChange = e => {
this.setState({
values: e.target.value
}, this.changeColor());
}
componentDidUpdate() {
this.changeColor();
}