React 基础
状态组件和无状态组件
状态组件和无状态组件的差异是一个拥有state,另外一个没有。
对于无状态组件,他不能够自动更新,因为他没有自己的state也就不能够检测state的变化。只能够手动更新。
同时,对于无状态组件的写法可以更加的简洁,就只是一个纯函数而已,接收props参数。
props和state
一个组件的state是私有的,可以改变的。但是props来自上层的传递。react遵守的规则是像一个纯函数一样绝不更改上层传递而来的props。
一般来讲上层组件集中管理(管理而不是存储)下层组件的state。
当一个组件发现它的state被更改以后,就会将自己重新进行渲染。要注意的是一个组件的state是不能够直接更改的,而应该通过setState
方法更新。state只能在构造函数中进行初始化。
reactDom会检查当前state和屏幕显示元素state的差异,并且只更新这个差异,而不是更新屏幕显示元素的本身。
对于自定义的组件,当调用时,会将其属性作为props
传递。
props就像是电流一样,在react组件中进行传递,而一个一个的react元素就像是电器一样,根据电流改变他们的('states')状态。
生命周期
每一个react组件都有自己的生命周期,从他们被创建出来,显示在屏幕上,一直到他们从屏幕上消失。
但是这只是这些组件在屏幕上的生命周期,如果不进行处理就还会留下一些副作用。
通过componentDidMount
(挂载之后)和componentWillUnmount
(卸载之前)等函数可以实现在特定的时间节点完成指定的操作,可以出来在挂载react元素之后执行指定操作或者在卸载react元素之前处理某些副作用。