React TypeScript、React JavaScript和React Native之间的区别是什么?

20
我对React JavaScript、React Typescript和React Native感到困惑。
我只知道我们用React Native开发移动应用程序,而使用React(Javascript、Typescript)开发Web应用程序。
有人能够清楚地区分它们之间的区别吗? 它们使用哪个父级库/框架?
像Angular一样,我们可以在React JavaScript、React Typescript和React Native中创建组件和服务吗?
当我们简单地说“React”时,它指的是什么(Native、Typescript还是Javascript)?
3个回答

35

React是用于构建UI界面的库/框架。您可以构建描述您想要页面看起来像什么的各种组件,然后React负责确定发生了什么变化并对页面进行更新。如果有人只说“React”而没有其他上下文,那么这可能就是他们的意思。

React Native使用与React相同的核心功能,但是一旦它确定需要进行更改,它会更新适用于安卓或iOS的本地组件,而不是更新DOM(即网页)。因此,React Native让您使用熟悉的React开发人员语法和工具编写原生手机应用程序。

Javascript vs typescript是完全不同的轴。 Javascript是Web页面使用的主要编程语言。Typescript是Javascript的超集,它允许您向代码添加类型信息。这使您可以更快地发现代码中的错误,因为您的IDE和构建过程可以检查类型以查看您是否犯了错误。您可以使用任何一种语言编写网页(包括React网页),我个人偏爱使用TypeScript。


18
在介绍React JS和React TS的区别之前,你需要了解React TS项目(实际上是任何TS项目)的工作原理。TypeScript不是一种本地在Web上运行的语言,你添加到代码库中的类型定义在浏览器端没有任何意义。当你构建代码时,TypeScript代码会被转译为JavaScript代码。因此,如果你查看捆绑后的代码,你无法找到React JS和React TS之间的任何区别,它们都捆绑了相同的JavaScript代码。
有了这个基础,让我们谈谈React Native和React。React本身是一个使用组件声明式地构建应用程序的框架。当人们在构建Web应用程序时提到React时,他们通常只说React,但他们应该说React和React-DOM,因为React-DOM是实际将内容渲染到浏览器的库。
你可以把React想象成React生态系统的基础。React-DOM是在React基础上构建的用于在Web上呈现应用程序的库。React Native是呈现你的应用程序在移动应用程序中的库,甚至更多(macOS、Windows、Apple TV等也可能成为React Native的编译目标)。我建议你阅读React Native文档,以了解它是如何实现的。我个人使用Expo Managed Workflow来开发跨平台移动应用程序。

在编写React JS和React TS方面的区别在于所使用的编程语言。你可以编写JavaScript或者TypeScript,但最后的打包文件总是JavaScript(注意:Deno不同,它本身就可以运行TypeScript,点击查看)。

而编写JavaScript和TypeScript的区别仅在于开发体验。如果用TypeScript编写代码,你将获得静态类型检查和强大的自动补全功能。我通常使用TypeScript,因为它能够在我的代码运行之前找出大部分错误。但缺点是,当我使用没有类型定义的库时,我必须自己解决这个问题(要么编写类型定义,要么使用其他库)。


5
简短快速的回答如下:
+--------------+-------------+-------------------+--------------------+
|   Library    |  Language   |   Appropriate     |      What is?      |
+--------------+-------------+-------------------+--------------------+
| React        | javascript  | Web               | javascript library |
| React Native | javascript  | Web, Android, IOS | Extended React     |
| React TS     |  Typescript | Web               | React + Typescript |
+--------------+-------------+-------------------+--------------------+
  • React = React.js = React JavaScript
  • TypeScript = 一门新的编程语言,但你可以认为它是加强版的JavaScript
  • React 是一个基于组件(component)概念的库。忘记 Angular 框架中的模块(module)服务(service)

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