【发布时间】:2016-09-20 19:38:08
【问题描述】:
我正准备做我的第一个 React 项目,我的阅读表明我需要让 React 处理所有使用虚拟 DOM 的渲染,并且我不应该做任何手动 DOM 操作干扰虚拟 DOM 计算。
然而,我想不通的是:
假设我在一个带有其他 HTML 的页面中的 div #app 中呈现了一个 React 组件。这是否意味着我必须避免任何普通的 JavaScript DOM 操作页面上的任何地方?或者,只要我将 #app div 和元素单独留在实际的 React 组件中,我是否可以安全地在页面的其他地方使用 DOM 操作?
编辑:激励用例
我考虑让非 React 组件在 React 组件之外操作 DOM 的原因主要是为了让 Google 可以看到 HTML 而无需跳过很多麻烦。假设我想要一些对 SEO 有用的关于应用程序的描述性文本,并且该描述可能有一些下拉切换等(因此是 DOM 问题)。我真的想要/需要在 React 中编写所有内容,因为应用程序本身的复杂 UI 使用 React,如果成本使某些文本难以让 Google 索引?
【问题讨论】:
-
您可以在页面上进行 DOM 操作,但我不知道如果您修改了 React 根目录的 DOM inside 会发生什么。我想这会很有爆炸性。
-
没有。只是不要操作 React 管理的 dom 元素。即使你在技术上可以做到这一点,但你必须非常小心如何做,如果你所做的事情可以在组件的
render()中完成,请改为这样做。
标签: reactjs