我已经出于好奇而开始学习React,并且想知道React和React Native之间的区别-尽管使用Google找不到满意的答案。React和React Native似乎具有相同的格式。它们的语法完全不同吗?
React Native和React之间有什么区别?
ReactJS
- React用于创建网站,Web应用程序,SPA等。
- React是用于创建UI层次结构的Javascript库。
- 它负责呈现UI组件,被视为MVC框架的V部分。
- 由于虚拟DOM仅刷新页面的一部分,因此React的虚拟DOM比常规的完全刷新模型要快,从而减少了页面刷新时间。
- React使用组件作为UI的基本单位,可以重复使用这节省了编码时间。简单易学。
反应本机
- React Native是一个用于创建跨平台本机应用程序的框架。这意味着您可以创建本机应用程序,并且同一应用程序将在Android和ios上运行。
- React native具有ReactJS的所有优点
- React native允许开发人员以网络风格的方式创建本地应用。
- 前端开发人员可以轻松地成为移动开发人员。
reactjs使用react-dom而不是浏览器dom,而react native使用虚拟dom,但是两者使用相同的语法,即如果可以使用reactjs,则可以使用react native。因为在reactjs中使用的大多数库都可以在react native中使用像您的反应导航和它们共有的其他常见库。
Some differences are as follows:
1- React-Native is a framework which used to create Mobile Apps, where ReactJS is a javascript library you can use for your website.
2- React-Native doesn’t use HTML to render the app while React uses.
3- React-Native used for developing only Mobile App while React use for website and Mobile.
React Js -React JS是前端javascript库,它是大型库而不是框架
- 它遵循基于组件的方法,该方法有助于构建
可重用的UI组件- 它用于开发复杂的交互式Web和移动UI
- 即使仅在2015年才开源,它还是支持它的最大社区之一。
ReactNative -React Native是一个开源移动应用程序框架。
REACT是Javascript库,用于构建诸如Facebook之类的大型/小型界面Web应用程序。
REACT NATIVE是Javascript框架,用于在Android,IOS和Windows Phone上开发本机移动应用程序。
两者均由Facebook开源。
总结:React.js用于Web开发,而React-Native用于移动应用程序开发
这是我所了解的差异:
- 它们具有不同的html标签:React Native用于处理文本,而不是在React中。
- React Native使用的是Touchable组件,而不是常规的按钮元素。
- React Native具有用于呈现列表的ScrollView和FlatList组件。
- React Native使用AsyncStorage,而React使用本地存储。
- 在React Native路由器中,它作为堆栈起作用,而在React中,我们使用Route组件进行映射导航。
简而言之,ReactJS是父库,它根据主机环境(浏览器,移动设备,服务器,桌面等)返回要渲染的内容。除了渲染外,它还提供其他方法,例如生命周期挂钩等。
在浏览器中,它使用另一个库react-dom来呈现DOM元素。在移动设备中,它使用React-Native组件来呈现特定于平台的(IOS和Android)本地UI组件。所以,
react + react-dom =网站开发
反应+本机=移动发展
ReactJS是一个JavaScript库,用于构建Web界面。您将需要像webpack这样的捆绑器,并尝试安装构建网站所需的模块。
React Native是一个JavaScript框架,它包含编写多平台应用程序(如iOS或Android)所需的一切。您需要安装xcode和android studio才能构建和部署您的应用。
与ReactJS不同,React-Native不使用HTML,而是可以在ios和android上使用的相似组件来构建应用。这些组件使用真正的本机组件来构建ios和android应用。因此,与其他Hybrid开发平台不同,React-Native应用程序具有真实感。组件还可以提高代码的可重用性,因为您无需在ios和android上再次创建相同的用户界面。
React Js正在使用HTML Dom。但是React native正在使用移动(iOS / android)本机ui组件进行操作。
关于组件生命周期以及所有其他方面,它几乎是相同的。
区别主要是所使用的JSX标记。React使用类似于html的脚本。另一个是标记,react-native使用该标记显示视图。
React Native适用于移动应用程序,而React适用于网站(前端)。两者都是Facebook发明的框架。React Native是一个跨平台开发框架,意味着可以为IOS和Android编写几乎相同的代码,并且可以正常工作。我个人对React Native的了解更多,因此我将在此保留它。
React Js是一个Javascript库,您可以在其中使用React开发和运行更快的Web应用程序。
React Native允许您仅使用JavaScript来构建移动应用程序,它用于移动应用程序开发。更多信息在这里https://facebook.github.io/react-native/docs/getting-started.html
React是React Native和React DOM的基础抽象,因此,如果要使用React Native,则还需要React ...与Web相同,但是要使用React Native,则需要React DOM。
由于React是基本的抽象,因此一般语法和工作流程是相同的,但是您将使用的组件是非常不同的,因此您将需要学习这些差异,这与React内联,即所谓的moto,即“在任何地方学习一次写入”,因为您知道React(基础抽象)后,您可以简单地了解平台之间的差异,而无需学习其他编程语言,语法和工作流程。
React-Native是一个框架,其中ReactJS是可用于您的网站的javascript库。
React-native提供默认的核心组件(图像,文本),其中React提供了许多组件并使它们协同工作。
ReactJS是一个核心框架,旨在构建基于反应式模式隔离的组件,您可以将其视为MVC中的V,尽管我想指出react确实带来了不同的感受,特别是如果您对反应性概念不太熟悉的话。
ReactNative是另一层,旨在为Android和iOS平台提供一组通用的组件。因此,代码看起来与ReactJS基本相同,因为它是ReactJS,但它是在移动平台中本地加载的。您还可以根据操作系统在Java / Objective-C / Swift中桥接更复杂和平台相关的API,并在React中使用它。
React是用于构建用户界面的声明性,高效且灵活的JavaScript库。您的组件会告诉React您要呈现的内容–然后,当数据更改时,React会高效地更新和呈现正确的组件。在这里,ShoppingList是一个React组件类或React组件类型。
React Native应用程序是一个真正的移动应用程序。使用React Native,您无需构建“移动Web应用程序”,“ HTML5应用程序”或“混合应用程序”。您构建的真实移动应用程序与使用Objective-C或Java构建的应用程序没有区别。React Native使用与常规iOS和Android应用程序相同的基本UI构建块。
React Native主要是用JavaScript开发的,这意味着您需要入门的大多数代码都可以在平台之间共享。React Native将使用本机组件进行渲染。React Native应用程序是使用它所针对的平台,iOS的Objective-C或Swift,Android的Java等语言开发的。所编写的代码在各个平台之间不共享,并且它们的行为也有所不同。他们可以不受限制地直接访问平台提供的所有功能。
React是Facebook开发的用于构建用户界面的开源JavaScript库。它用于处理Web和移动应用程序的视图层。ReactJS过去是用来创建可重用的UI组件的,它是当前it领域中最受欢迎的JavaScript库之一,它拥有强大的基础和庞大的社区,如果您学习ReactJS,则需要具备JavaScript,HTML5和CSS的知识。
简单来说,React和React native遵循相同的设计原则,但在设计用户界面时除外。
- React native有一组单独的标签来定义移动用户界面,但是都使用JSX来定义组件。
- 两种系统的主要目的都是开发可重用的UI组件,并通过其组成减少开发工作量。
- 如果您正确计划和构建代码,则可以对移动设备和Web使用相同的业务逻辑
无论如何,它是构建移动和Web用户界面的出色库。
首先,相似之处: React和React Native(RN)均旨在创建灵活的用户界面。这些框架有很多好处,但是最根本的收获是它们是用于UI开发的。在React之后的几年,Facebook开发了RN。
React:
Facebook设计该框架的方式几乎就像在HTML / XML内编写JavaScript,这就是为什么标记称为“ JSX ”(JavaScript XML)的原因,并且类似于类似HTML的标记,例如<div>
或<p>
。React的标志是大写字母标签,它表示定制组件,例如<MyFancyNavbar />
,也存在于RN中。但是,React使用DOM。DOM用于HTML,因此React用于Web开发。
React Native:
RN不使用HTML,因此不用于Web开发。它用于...几乎所有其他用途!移动开发(iOS和Android),智能设备(例如手表,电视),增强现实等。由于RN没有与之交互的DOM,因此它使用自己的React,而不是使用相同类型的HTML标签。标签,然后将其编译成其他语言。例如,<div>
RN开发人员使用RN的内置标签代替标签,该<View>
标签内置于引擎盖下的其他本机代码中(例如,android.view
在Android和UIView
iOS上)。
简而言之:它们非常相似(用于UI开发),但是用于不同的媒介。
- React-Native是用于开发Android和iOS应用程序的框架,该框架共享Java代码的80%-90%。
React.js是用于开发Web应用程序的父Javascript库。
While you use tags like
<View>
,<Text>
very frequently in React-Native, React.js uses web html tags like<div>
<h1>
<h2>
, which are only synonyms in dictionary of web/mobile developments.For React.js you need DOM for path rendering of html tags, while for mobile application: React-Native uses AppRegistry to register your app.
I hope this is an easy explanation for quick differences/similarities in React.js and React-Native.
这是React项目。
在Facebook,他们发明了React,因此JavaScript可以使用虚拟DOM模型更快地操纵网站DOM。
与React虚拟域模型相比,DOM完全刷新要慢一些,React虚拟域模型仅刷新页面的一部分(阅读:部分刷新)。
As you may understand from this video, Facebook did not invent React because they understood immediately that the partial refresh would be faster than the conventional one. Originally they needed a way to reduce Facebook application re-build time and luckily this brought the partial DOM refresh to life.
React native is just a consequence of React. It is a platform to build native apps using JavaScript.
Prior to React native you needed to know Java for Android or Objective-C for iPhone and iPad to create native apps.
With React Native it is possible to mimic the behavior of the native app in JavaScript and at the end, you will get platform specific code as the output. You may even mix the native code with the JavaScript if you need to optimize your application further.
As Olivia Bishop said in the video, 85% of the React native code base can be shared among platforms. These would be the components applications typically use and the common logic.
15% of the code is platform specific. The platform-specific JavaScript is what gives the platform flavor ( and makes the difference in the experience ).
The cool thing is this platform specific code — is already written, so you just need to use it.
ReactJS是用于构建UI组件层次结构的框架。每个组件都有状态和道具。数据通过道具从顶层流向底层组件。使用事件处理程序在顶级组件中更新状态。
React native使用React框架为移动应用程序构建组件。React native提供了适用于iOS和Android平台的一组基本组件。React Native中的一些组件是Navigator,TabBar,Text,TextInput,View,ScrollView。这些组件在内部使用本机iOS UIKit和Android UI组件。React native还允许使用NativeModules,在JavaScript中可以使用用iOS的ObjectiveC和Android的Java编写的代码。
ReactJS是一个JavaScript库,它支持前端Web并在服务器上运行,用于构建用户界面和Web应用程序。
React Native是一个可编译为本机应用程序组件的移动框架,允许您使用JavaScript构建适用于不同平台(iOS,Android和Windows Mobile)的本机移动应用程序,从而允许您使用ReactJS来构建组件,并在罩。
两者均由Facebook开源。
React Native
It is a framework for building native applications using JavaScript.
It compiles to native app components, which makes it possible for you to build native mobile applications.
React JS
它支持前端Web并在服务器上运行,以构建用户界面和Web应用程序。
它还允许我们创建可重用的UI组件。
您可以在React JS中重用代码组件,从而节省大量时间。