React State vs Props
状态
状态是一种可更新的结构,用于包含有关组件的数据或信息,并且可以随时间变化。状态更改可以作为对用户操作或系统事件的响应而发生。这是React组件的核心,它决定了该组件的行为及其呈现方式。状态必须保持尽可能简单。它代表组件的本地状态或信息。只能在组件内部或直接由组件访问或修改。
Props
Props是只读组件。它是一个存储标记属性值的对象,其工作方式类似于HTML属性。它允许将数据从一个组件传递到其他组件。它类似于函数参数,并且可以与函数中传递的参数相同的方式传递给组件。Props是不可变的,因此我们不能从组件内部修改Props。
状态与Props之间的差异
Props |
State |
Props是只读的。 |
状态更改可以是异步的。 |
Props是不变的。 |
状态是可变的。 |
Props使您可以将数据从一个组件传递到其他组件作为参数。 |
状态保存有关组件的信息。 |
子组件可以访问Props。 |
状态不能被子组件访问。 |
Props用于在组件之间进行通信。 |
状态可用于呈现组件的动态更改。 |
无状态组件可以具有Props。 |
无状态组件不能具有状态。 |
Props使组件可重复使用。 |
状态不能使组件可重用。 |
Props是外部的,并由呈现组件的任何东西控制。 |
状态是内部的,由React组件本身控制。 |
下表将指导您更改Props和状态。
条件 |
Props |
State |
可以从父组件获取初始值吗? |
是 |
是 |
可以由父组件更改吗? |
是 |
否 |
可以在组件内部设置默认值吗? |
是 |
是 |
可以在组件内部更改吗? |
否 |
是 |
可以为子组件设置初始值吗? |
是 |
是 |
可以更改子组件吗? |
是 |
否 |
注意: 状态State和Props组件具有一些共同的相似之处。下表中给出了它们。
State VS Props |
两者都是普通的JS对象。 |
两者都可以包含默认值。 |
两者在使用时都是只读的。 |