2.1.4 prop 和 state 的对比
总结下 prop 和 state 的区别:
- prop 用于定义外部接口,赋值在外部使用组件时;state 用于记录内部状态,赋值在组件内部。
- 组件不应该改变 prop 的值,而 state 存在的目的就是让组件来改变的。
组件的 state,就相当于组件的记忆,其存在的意义就是被修改,每一次通过 this.setState 函数修改 state 就改变了组件的状态,然后通过界面渲染把这种变化展现出来。
而组件绝对不应该去修改传入的属性值,属性值可以当做组件的初始值,如果在组件内去修改属性值很有可能导致程序陷入一片混乱,违背了 RN 设计的初衷。
虽然 RN 没法阻止你去修改传入的属性对象,但是开发者应该把这当做一个规矩,不要去踩这个红线。