当前位置: 首页 > 知识库问答 >
问题:

在reactjs中,道具是按值传递还是按引用传递?

富波光
2023-03-14

因此,在父对象的状态中所做的更改也可以通过它所出现的道具立即在子对象中使用。

这样做正确吗?

共有3个答案

饶元章
2023-03-14

如果将组件的状态作为道具传递给其子组件,则如果父组件的状态更改,它将重新渲染,这也将使用刷新的属性重新渲染其子组件。子对象不像父对象那样直接侦听状态更改,它们只是由于父对象的状态更改而重新呈现和更新。

看看这个-https://facebook.github.io/react/docs/multiple-components.html.它将帮助你了解这个概念是如何工作的。希望这能有所帮助!

臧翰采
2023-03-14

简短回答:道具是通过引用传递的。

它可能令人困惑的原因是:如果手动更改父对象的状态(糟糕的做法!),那么子组件中的对象也会更改。但不会触发重新渲染!(子组件不会“知道”其道具已更改。)因此您不会看到UI更改。

但是,如果您使用setState(首选做法)更改父对象的状态,则会通知子对象必须重新呈现自身。

洪开诚
2023-03-14

正如你所料,它与语言中的其他任何地方基本上是相同的机制。基元通过值传递,而不是基元的变量将通过引用传递。

React在内部负责道具的更新,以便儿童始终拥有道具的最新价值。

这是在接收道具的新值时调用的生命周期方法。

但是,请确保您尊重已建立的基础架构以及React提供给您的公开API。

 类似资料:
  • 本文向大家介绍JS是按值传递还是按引用传递,包括了JS是按值传递还是按引用传递的使用技巧和注意事项,需要的朋友参考一下 按值传递 VS. 按引用传递 按值传递(call by value)是最常用的求值策略:函数的形参是被调用时所传实参的副本。修改形参的值并不会影响实参。   按引用传递(call by reference)时,函数的形参接收实参的隐式引用,而不再是副本。这意味着函数形参的值如果被

  • 问题内容: 我一直认为Java使用传递引用。 但是,我已经看到了几篇博客文章声称不是(博客文章说Java使用值传递)。 我不认为我能理解他们的区别。 有什么解释? 问题答案: Java总是按值传递。 不幸的是,我们根本不处理任何对象,而是处理称为引用的 对象句柄(当然是通过值传递)。选择的术语和语义很容易使许多初学者感到困惑。 它是这样的: 在上面的示例中仍将返回”Max”。值aDog内main未

  • 问题内容: 我读了许多文章,都说Java是通过价值传递的。但是我仍然不能解释按值传递和引用之间的区别。我写了一个示例程序,它像这样执行。 执行 谁能向我解释这些问题… 价值传递是什么意思? 答:它只是将存储在变量中的数字或值传递给函数。我是对还是错。 How do you say Java是通过价值传递? 为什么Java是按值传递而不是按引用传递? 上面的程序Tries是否显示了“按值传递”和“引

  • 我创建了一个MapReduce作业,该作业将计算键的数量,然后根据它们出现的次数对它们进行排序 处理输入时,如 最终目标将是一个类似于 我的地图阶段输出a 我的减少阶段有3个阶段:设置,我初始化一个数组列表来保存我的 数组列表中的值是我创建的一个对象myObject的值,它将文本和Int保存在一个元组中可写,我发现一个奇怪的地方是当我这样做的时候 key是传递到reducer的键,count是我通

  • 问题内容: 基本类型(数字,字符串等)按值传递,但对象未知,因为它们都可以按值传递(如果我们认为保存对象的变量实际上是对该对象的引用) )和按引用传递(当我们认为对象的变量包含对象本身时)。 尽管最后并没有什么大不了,但我想知道呈现通过惯例的参数的正确方法是什么。是否有JavaScript规范的摘录,其中定义了与此相关的语义? 问题答案: JavaScript很有趣。考虑以下示例: 产生输出: 如

  • 问题内容: 如果我将数据帧传递给函数并在函数内部对其进行修改,那么它是按值传递还是按引用传递? 我运行以下代码 函数调用后,的值不变。这是否意味着价值传递? 我也尝试了以下 事实证明,变化并没有。为什么会这样呢? 问题答案: 简短的答案是,Python始终会传递值,但每个Python变量实际上都是指向某个对象的指针,因此有时看起来像是传递引用。 在Python中,每个对象都是可变的或不可更改的。例