React Native和React有什么区别?

925

出于好奇我开始学习React,并想知道React和React Native的区别-尽管使用Google找不到令人满意的答案。React和React Native似乎具有相同的格式。它们是否具有完全不同的语法?


110
很多人在被问及这个问题时都给出了一个字典式的回答,而大多数人只是想知道它们是否可以互换使用:在将 React 代码移植到 React Native 上有多容易?如果你想在 iPad 上使用它,你需要将 Web 应用程序的前端重写为不同的 React 代码吗?它们之间有何不同? - Lawrence Weru
39
React Native 可以构建适用于 iOS、Android 和 Windows Mobile 的移动应用程序,你可以编译并放置在应用商店供用户安装。而 ReactJS 用于构建网页,用于在 web 浏览器中使用。两者都使用可重用组件,但是用于呈现组件中元素的语法(使用 JSX)是不同的。React JSX 渲染类似于 HTML 的组件,例如 <h1><p> 等,而 React Native 则渲染原生应用程序视图组件,例如 <View><Text><Image><ScrollView>,因此除非重新制作/替换所有元素,否则无法直接重用 UI 组件代码。 - Ira Herman
React是一个用于开发Web应用程序前端的JavaScript库。React Native用于移动应用程序。 - subhashis
45个回答

7
简而言之,ReactJS 是一个父级库,根据宿主环境(浏览器、移动设备、服务器、台式机等)返回要呈现的内容。除了呈现内容外,它还提供其他方法,如生命周期钩子等。

在浏览器中,它使用另一个库 react-dom 来呈现 DOM 元素。在移动设备上,它使用 React-Native 组件来呈现特定于平台(同时支持 IOS 和 Android)的本地 UI 组件。

因此,

react + react-dom = 网页开发

react + react-native = 移动端开发


5

React vs React Native

ReactJS(React)

  • React用于创建网站、Web应用程序、SPAs等。

  • React是一种用于创建UI层次结构的JavaScript库。

  • 它负责呈现UI组件,被视为MVC框架的V部分。

  • React的虚拟DOM比传统的全刷新模型更快,因为虚拟DOM仅刷新页面的部分,从而减少了页面刷新时间。

  • React使用组件作为UI的基本单位,可以重复使用,节省编码时间。易于学习和上手。

    React Native

  • React Native是一个用于创建跨平台原生应用的框架。这意味着您可以创建原生应用程序,同一应用程序将在Android和iOS上运行。

  • React Native具有ReactJS的所有优点。

  • React Native允许开发人员采用Web式方法创建本机应用程序。


4

REACT 是一个用于构建像Facebook这样的大型/小型界面Web应用程序的JavaScript库。

REACT NATIVE是一个用于在Android、IOS和Windows Phone上开发本地移动应用程序的JavaScript框架。

这两个库都是由Facebook开源的。


4

以下是一份非常好的解释:

Reactjs 是一个支持前端和服务器的 JavaScript 库。此外,它可用于创建移动应用和网站的用户界面。

React Native 是一个跨平台的移动框架,使用 Reactjs 构建应用程序和网站。React Native 编译为本机应用程序组件,使程序员能够在不同的平台(如 Windows、Android 和 iOS)上使用 JavaScript 构建移动应用程序。

  • Reactjs 可以被描述为 React DOM 的基本派生物,适用于 Web 平台,而 React Native 则是本身的基本派生物,这意味着语法和工作流程保持不变,但组件会改变。

  • 最终,Reactjs 是一个 JavaScript 库,它使程序员能够创建具有吸引力和高性能的 UI 层,而 React Native 是一个完整的框架,用于构建跨平台应用程序,无论是 Web、iOS 还是 Android。

  • 在 Reactjs 中,虚拟 DOM 用于渲染浏览器代码,在 React Native 中,原生 API 用于在移动设备中渲染组件。

  • 使用 Reactjs 开发的应用程序在 UI 中呈现 HTML,而 React Native 使用 JSX 来呈现 UI,这实际上就是 JavaScript。

  • 在 Reactjs 中,使用 CSS 创建样式,而在 React Native 中则使用样式表进行样式设置。

  • 在 Reactjs 中,可以使用 CSS 实现动画,就像 Web 开发一样,而在 React Native 中,则使用动画 API 在 React Native 应用程序的不同组件之间引入动画。

  • 如果需要为 Web 界面构建性能高、动态和响应灵敏的 UI,则 Reactjs 是最佳选择;如果需要让移动应用程序具有真正的本地感觉,则 React Native 是最佳选择。

更多信息请参见:https://www.simform.com/reactjs-vs-reactnative/


4
差异非常简单。
我们使用React开发Web应用程序,使用React Native开发移动应用程序。其中,React更加注重改善UI(用户界面),而RN则为所有操作系统共享一个公共逻辑层。这提供了解决已经处理了相当长时间的问题的解决方案,例如开发效率低下、部署时间较慢和开发人员生产力较低。
需要注意的是,React是用于Web开发的库,而React Native是一个平台。
另一个有趣的事情是,当您想要使用RN时,您拥有启动项目所需的一切。另一方面,使用React创建新项目意味着您只选择了许多库之一,您将不得不使用这些库来构建Web应用程序。
您可以在该文章中找到更多有用的信息: https://pagepro.co/blog/react-native-faq-all-you-need-to-know

3

React Js - React JS 是一种前端JavaScript库,它是一个庞大的库而不是框架。

  • 它采用基于组件的方法来构建可重用的UI组件。
    • 它被用于开发复杂和交互式的网站和移动端UI。
    • 尽管它仅在2015年开源,但它拥有支持它的最大社区之一。

ReactNative - React Native是一个开源的移动应用程序框架。


3

以下是一些区别:
1- React-Native是一个用于创建移动应用的框架,而ReactJS是一个你可以用于网站的javascript库。
2- React-Native在渲染应用时不使用HTML,而React则使用HTML。
3- React-Native仅用于开发移动应用,而React可用于网站和移动应用程序。


3
以下是我知道的区别:
  1. 它们使用不同的HTML标签:React Native使用
  2. React Native使用Touchable组件代替普通的按钮元素。
  3. React Native有ScrollView和FlatList组件用于渲染列表。
  4. React Native使用AsyncStorage,而React使用本地存储。
  5. 在React Native中,路由器作为堆栈来运行,而在React中,我们使用组件来映射导航。

3

React Native 是一个 JavaScript 框架,它包含了你编写多平台应用(如 iOS 或 Android)所需的一切。

ReactJS 是一个 JavaScript 库,用于构建 web 界面并搭建网站。


3
总结:React.js适用于Web开发,而React-Native适用于移动应用程序开发。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接