React和React native

React 和 React Native 都是由 Facebook 开发的开源 JavaScript 库,用于构建用户界面。虽然它们的名称和开发者相同,但它们的应用场景和功能有所不同。

React

React 是一个用于构建用户界面的 JavaScript 库,尤其是单页面应用。它是由 Facebook 在 2013 年发布的,现在已经成为最流行的前端框架之一。React 的主要特点是:

  • 组件化:React 采用组件化的思想,使得代码可以被封装成独立、可复用的组件。每个组件都有自己的状态和属性,组件的状态或属性的变化会引发组件的重新渲染。

  • 虚拟 DOM:React 引入了虚拟 DOM 的概念,当组件的状态或属性改变时,React 会在内存中创建一个新的虚拟 DOM 树,然后与旧的虚拟 DOM 树进行比较,找出差异,最后将差异应用到真实的 DOM 树上,这个过程被称为 "reconciliation" 或 "diffing"。这种方式可以极大地提高页面的性能。

  • 单向数据流:React 实现了单向数据流,也就是说,数据只能从父组件传递到子组件。这使得数据的流动变得更容易追踪和理解。

React Native

React Native 是一个用于构建原生移动应用的框架。它是在 React 的基础上开发的,允许你使用 JavaScript 和 React 来写 iOS 和 Android 应用。React Native 的主要特点是:

  • 跨平台:React Native 允许你使用同一套代码来开发 iOS 和 Android 应用。虽然某些情况下你可能需要写平台特定的代码,但大部分代码都可以在两个平台上共享。

  • 原生组件:React Native 使用原生组件,而不是 Web 组件。例如,你会使用 React Native 的 <View> 和 <Text> 组件,而不是 HTML 的 <div> 和 <p>。这意味着 React Native 应用的性能和外观与使用 Objective-C、Swift 或 Java/Kotlin 写的原生应用相当。

  • 热更新:React Native 支持热更新,这意味着你可以在不需要用户下载更新就可以发布应用的新版本。

React 和 React Native 之间的主要区别在于它们的应用场景:React 用于构建 Web 应用,而 React Native 用于构建原生移动应用。然而,由于它们都使用了 React 的组件化和声明式编程模型,因此如果你已经熟悉了 React,那么学习 React Native 会相对容易很多。