组件state
一、设计合适的state
1.1 定义:
state代表一个组件UI呈现的完整状态
stae代表一个组件UI呈现的最小状态集【所有状态都用于组件UI的变化,没有任何多余的状态】
1.2 state和props区别:
state:组件内部维护自己的状态,是可变的
props:只能通过父组件传递过来。
1.3判断一个组件是否为state:
*变量是否通过props从父组件获取
*变量是否在整个声明周期保持不变
*是否可以通过其他状态或属性计算得到
*是否在render方法中使用
二、正确修改state
2.1 不能直接修改state
2.2 state的更新是异步的
2.3sttae的更新是一个合并的过程
2.4state与不可变对象:
*不可变类型(number;string;boolean;null;undefined)【直接给要修改的状态赋一个新值】
*数组 【使用concat;slice;filter返回一个新数组,不改变原数组】
*普通对象【Object.assgin】
三、父子组件之间的通讯
父子:父组件向子组件的props传递数据
子父:父组件通过子组件的prop,给子组件传递一个回调函数
四、兄弟组件通讯
兄弟组件间不能互相传递数据,只能把组件间共享的状态保存到距离他们最近的共同组件内