this.props
可以通过将属性传递给构造函数constructor来实例化组件,这些属性就叫做props。在组件渲染的时候,可以通过this.props访问该组件的属性。但是不在组件方法里面修改props。
该组件的父元素一般会修改它孩子的属性,然后孩子重新渲染将这些属性展现出来。当然,孩子不一定重新渲染,具体看shouldComponentUpdate()方法的返回值,该方法的默认值是返回值true,也就是默认会重新渲染。孩子可以重写该方法返回false,就不会重新渲染,一般这样做是为了减少不必要的渲染来提高性能。
this.state
组件通过state对象维护它内部的状态,组件内部的方法可以通过this.state访问。和props不同的是,组件的父元素不会去访问它孩子的state,毕竟state是用来维护该组件内部的状态的。
修改state是通过this.setState()方法进行的,比如说:不是直接this.state.foo='bar',而是this.setState({foo:'bar'}); 。会将setState的值合并到原来的state里面,如果存在了就覆盖掉。