【发布时间】:2017-06-07 20:59:28
【问题描述】:
来自ReactJS wiki关于虚拟DOM的页面:
React 创建一个内存数据结构缓存,计算 产生的差异,然后更新浏览器显示的 DOM 有效率的。这允许程序员编写代码,就好像 每次更改都会呈现整个页面,而仅 React 库 渲染实际发生变化的子组件。
换句话说,Virtual DOM 允许我们通过避免直接操作 DOM 来提高性能。
但是React Native 呢?
我们知道理论上在其他平台上存在原生视图和 UI 组件。 DOM 本身并没有什么。 所以我们可以说 React Native 有“虚拟 DOM”还是我们在谈论其他东西?
例如,Weex 规范中有一个section,它描述了直接使用 DOM-tree 的方法。我的假设是,我们可能会认为 React Native 也应该有某种 DOM 树以及“虚拟 DOM”抽象层,这是 React 本身的主要思想。
所以我的问题是:
React Native 是否有某种“虚拟 DOM”(或其表示形式),如果有,如何将这种“虚拟 DOM”移植到各种平台?
更新:
这个问题的目的是阐明 React Native 如何管理原生 UI 组件的渲染。有没有具体的做法,如果有,官方是怎么称呼的?
更新 2:
This article 描述了名为Fiber 的新 React 架构,看起来就像这个问题的答案。
【问题讨论】:
-
这里的反对票是怎么回事?
-
@JohnWeisz 似乎人们认为这个问题太宽泛了,但是,我不会这么说。只是想阐明文档中实际遗漏的内容。
-
事实上,过于宽泛可能证明一个接近的投票是合理的,而不是一个反对票。
-
你引用的 react native 的链接清楚地表明它的原生部分是为了实现移动 java/swift/ios 组件,而不是 dom。 “使用 React Native,您无需构建“移动 Web 应用程序”、“HTML5 应用程序”或“混合应用程序”。您构建的是真正的移动应用程序......”。这里没有 100% 肯定的声明,但实际上涉及 dom 的可能性很小,至少对于插入的本机组件的主要部分而言。
-
@Sebas medium.com/@jiyinyiyong/virtual-dom-is-the-new-ir-67839bcb5c71 是我产生这种想法的原因。刚刚决定确定真相。
标签: javascript reactjs react-native virtual-dom react-fiber