在React 16中缺少数据重新响应attirbute

时间:2017-11-09 13:31:23

标签: javascript reactjs

我正在将某些应用升级到React 16,并发现属性data-reactroot已从生成的根元素中消失。

虽然不是非常重要,但似乎我们有一些代码和样式取决于该属性。我试图找到记录这种变化的任何地方,但不能。这种变化是否正常?

在v16之前:

<div id="root">
    <div class="css-1vi9s5j" data-reactroot="">
    ...

升级后:

<div id="root">
    <div class="css-1vi9s5j">
    ...

2 个答案:

答案 0 :(得分:7)

是的,这是故意的。我们在React中有一些依赖它的代码,但我们已经删除了它。

我不建议您的应用程序的样式取决于可以说是内部属性。使用您自己的CSS类或数据属性来代替样式。

答案 1 :(得分:1)

来自enter image description here

  

我们现在使用document.createElement而不是在安装组件时设置innerHTML。这允许我们摆脱每个节点上的data-reactid属性并使DOM更轻。在现代浏览器中使用document.createElement也更快,并修复了许多与SVG元素相关的边缘情况,并在同一页面上运行了多个React副本。