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

IT技术 reactjs
2021-05-16 13:00:27

据我所知,如果我将父组件状态传递给子组件,那么该子组件将获得父组件的实时状态。

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

这个对吗?

4个回答

正如您所期望的,它与该语言中的其他任何地方的机制基本相同。基元按值传递,不是基元的变量将按引用传递。

React 会在内部处理 props 的更新,以便孩子们始终拥有最新的 props 值。

这是在接收props的新值​​时调用的生命周期方法

但是,请确保您尊重已部署的基础设施以及 React 为您提供的公开 API。

简短回答:props通过引用传递

它可能会令人困惑的原因:如果您手动更改父组件的状态(不好的做法!),该对象也会在子组件中更改。不会触发重新渲染!(子组件不会“知道”它的 props 已经改变。)所以你不会看到 UI 改变。

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

如果你将组件的状态作为 props 传递给它的子组件,那么如果父组件的状态发生变化,它会重新渲染,这也将使用刷新的属性重新渲染它的子组件。孩子们不像父母那样直接监听状态变化,他们只是作为父母状态变化和更新的结果而重新渲染。

看看这个 - https://facebook.github.io/react/docs/multiple-components.html它将帮助您了解这个概念的工作原理。希望这可以帮助!

当组件的状态改变时,组件会被 React 重新渲染。在这样做的同时,它的子组件也会被重新渲染,这也会导致它们发生变化。