reactjs - React Native 是否使用 'virtual DOM' ?

标签 reactjs react-native

我试图弄清楚 React Native 在幕后是如何工作的,但我不确定 React Native 是否利用了 React 使用的所谓“虚拟 DOM”。我假设 React Native 以某种方式跟踪应用程序状态的更改,然后执行最少的工作来达到新状态,即 React 中的协调。我知道移动端没有真正的 DOM,并且 React Native 调用 native API 来渲染/重新渲染 View ,但是...

是否可以说 React Native 也使用“虚拟 DOM”?如果没有,如何用语言表达它?

最佳答案

React 中的 UI 渲染

与真实 DOM 一样,虚拟 DOM 是一棵节点树,它将元素及其属性和内容列为对象和属性。 React 的 render() 方法从 React 组件创建一个节点树,并更新该树以响应由操作引起的数据模型中的变化。

因此,每当发生任何更改时,整个 UI 都会以虚拟 DOM 表示形式重新呈现。将计算之前的虚拟 DOM 表示和新的虚拟 DOM 表示之间的差异。真实的 DOM 将根据实际发生的变化进行更新。

React Native 中的 UI 渲染

这些 React-Native 组件映射了在应用程序上呈现的实际真实 native iOS 或 Android UI 组件,这意味着 React Native 使用 native API 在移动设备上呈现组件。 React Native 使用影子线程,使用YOGA执行布局计算。

如果组件状态发生任何变化,它将使用影子线程计算后台的变化,然后更新 UI 线程。

关于reactjs - React Native 是否使用 'virtual DOM' ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48925069/

相关文章:

javascript - react 钩子(Hook)形式 : How to can I use onChange on React Hook Form Version 7. 0

javascript - React + Express - 在开发时用什么服务代替/构建

javascript - 页面滚动到每个输入模糊的顶部

javascript - 如何在 React Native 中更新状态并决定更新状态

javascript - react-native firebase 在类 com.facebook.react.bridge.ReadableNativeMap 上找不到要序列化的属性

javascript - react |在jsx中渲染html标签

javascript - 单击react-big-calendar中的事件后显示弹出窗口

reactjs - 如何将拖动 View 绑定(bind)到ScrollView项目中?

react-native - 在 React-Native 上实现 Google Cloud 语音转文本

react-native - Expo cli更新没有发生