React的核心思想就是组件化思想,页面会被切分成一些独立的、可复用的组件。
props
React是单向数据流,所以props
基本上也就是从服父级组件向子组件传递的数据。
props
经常被用作渲染组件和初始化状态,当一个组件被实例化之后,它的props
是只读的,不可改变的。props具有只读性。
props
主要是:父组件通过props向子组件传递数据,它具有可读性和不变性,只能通过外部组件主动传入新的props
来重新渲染子组件,否则子组件的props
不会改变。
state
是组件的数据状态,state
的主要作用是用于组件保存、控制以及修改自己的状态。
一个组件的显示形态可以由数据状态和外部参数所决定,外部参数也就是props
,而数据状态就是state
。
state
不同于props
的一点是,state
是可以被改变的。不过,不可以直接通过this.state=
的方式来修改,而需要通过this.setState()
方法来修改state
。
当我们调用this.setState
方法时,React会更新组件的数据状态state
,并且重新调用render
方法,也就是会对组件进行重新渲染。
constructor构造函数,用来初始化属性、状态和默认值,是唯一能够初始化的地方。则constructor里的this.state=
,是用来初始化的,而 this.setState是用
来修改state的。
区别
state
是组件自己管理数据,控制自己的状态,可变;
props
是外部传入的数据参数,不可变;