为什么React的props不可变

为什么React的props不可变

首先,prop 作为组件对外暴露出去的接口,当外部世界需要给组件传入数据或函数时(props 支持任何 JS 数据类型,所以不只是静态数据),通过 prop 属性传给子组件,组件接收到的 props 已成既定,不能改变,因为react组件应该是纯函数,相同的输入,应该产生相同的输出,其是由数据驱动的(组件外部的数据prop / 组件内部的数据state))。

Props

Props是Properties的简写。它们是只读组件,工作方式类似于HTML属性。Prop是一种将数据从父组件传递给子组件的方法。让我们用一个例子来理解这一点。

正如我们已经知道的,react组件以树的形式安排UI,其中父组件成为根组件,子组件成为分支和子分支。现在假设父组件希望将数据发送到它的一个深度嵌套组件。假设您需要从组件1向组件6发送一个属性。你会怎么做呢?

不能将属性直接传递给目标组件。这是因为React遵循这样的规则:属性必须从父组件流向直接的子组件。这意味着在发送属性时不能跳过子组件层,子组件也不能将属性发送回父组件。您可以使用默认的道具,以防父组件没有向下传递道具以便它们仍然被设置。这就是React具有单向数据绑定的原因。

因此,在本例中,我们需要逐层发送数据,直到它到达目标子组件。此路径中的每个组件都必须从其父组件接收该属性,然后将该属性作为接收重发到其子组件。这个过程会重复,直到属性到达它的目标组件。

a5c27d1ed21b0ef4ee9bd6953c23d2de83cb3ef2.jpg

由于这些属性只能从父组件传递,因此不能更改它们。

更多React相关技术文章,请访问React答疑栏目进行学习!

以上就是为什么React的props不可变的详细内容,更多请关注html中文网其它相关文章!

赞(0) 打赏
未经允许不得转载:html中文网首页 » React 答疑

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

前端开发相关广告投放 更专业 更精准

联系我们

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏