javascript - 父 DOM 节点更改类型时的 ReactJS 协调

标签 javascript reactjs

组件呈现以下 React 元素树。

<div>
  <Counter />
</div>

然后状态或 props 发生变化并触发渲染,从而产生以下 React 元素树。

<span>
  <Counter />
</span>

Counter 组件的实例(构造函数等)是否会被完全重新实例化?

如果是这样,同样的行为是否适用于非根节点,例如:

<div>
  <div>
    <Counter />
  </div>
</div>

过渡到...

<div>
  <span>
    <Counter />
  </span>
</div>

最佳答案

是的,它将重新实例化 Couter组件上

<div>
  <Counter />
</div>

<span>
  <Counter />
</span>

Reconciliation 中指定的进程说:

This will destroy the old Counter and remount a new one.

对于第二个示例,它将比较 <div>首先,没有任何变化,但下一个场景与上面相同,因此它也会 remount Counter组件。

关于javascript - 父 DOM 节点更改类型时的 ReactJS 协调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45711776/

相关文章:

javascript - 显示具有已检查输入的数据属性对象的元素

javascript - 不完整的可执行自加载闭包

javascript - react 类型错误 : Cannot read property 'getDates' of undefined

javascript - 没有闰日的两个日期之间的差异

javascript - 如何判断哪个ajax请求失败了?

javascript - 如何防止外部脚本覆盖我的 main.js 配置

javascript - 无法获取/帖子

javascript - connect 和 withRouter 问题

javascript - 使用 next-redux-wrapper 访问 React 外部的 Redux store

javascript - React 服务器渲染,将 HTML 获取到浏览器