React是什么?


theme: condensed-night-purple

highlight: atelier-cave-light

React是什么?

官方的解释是:A JavaScript library for building user interfaces用于构建用户界面的 JavaScript 库

那为什么要选择用React呢?

原生的HTML、CSS、JavaScrip的方式存在

  1. 大规模应用难以维护:原生的开发方式通常会使代码变得非常复杂,特别是在大规模应用中,这可能导致代码难以维护。
  2. 页面渲染效率低:在原生方式中,页面渲染通常需要进行大量的DOM操作,这会导致页面渲染效率低下,尤其是在处理大量数据或复杂交互时。
  3. 缺乏组件化:原生方式通常缺乏组件化的支持,这会使代码的可复用性和可维护性变得非常低。
  4. 开发效率低:在原生方式中,需要自己手动管理页面状态和事件处理,这会使开发效率变得非常低下。

React的优点

  1. 可以很好的跨浏览器兼容,同时兼容多端
  2. 虚拟 DOM:React 通过使用虚拟 DOM 技术,可以将对 DOM 的操作最小化,从而提高性能和响应速度。当数据变化时,React 会先将新的数据与旧的数据进行比较,然后只更新有变化的部分,而不是重新渲染整个页面。
  3. 组件化开发:React 的核心思想是将 UI 拆分为独立的组件,每个组件都有自己的状态和行为,并且可以嵌套使用。这种组件化开发方式可以使得代码更加模块化、可重用,也更易于维护和测试。
  4. 单向数据流:React 的数据流是单向的,即自上而下的单向数据流。这种数据流可以使得应用程序的数据变化更加可预测和稳定,也更容易排查和解决 bug。
  5. 生态系统和社区支持:React 已经成为了现代 Web 开发的主流技术之一,拥有庞大的社区和生态系统支持。React 生态系统中有许多优秀的库和工具可以帮助开发人员更加高效地开发和管理 Web 应用程序。

React开发依赖

开发React必须依赖三个库:

  • react:包含react所必须的核心代码
  • react-dom:react渲染在不同平台所需要的核心代码
  • babel:将jsx转换成React代码的工具

这三个库都是是各司其职的,每一个库实现的功能都是不同的。

但其实在React的0.14版本之前是没有react-dom这个概念的,所有功能都包含在react里。那为什么要进行拆分呢?

原因就是react-native。react包中包含了react和react-native所共同拥有的核心代码。但是react-dom针对web和native所完成的事情不同:

  • web端:react-dom会讲jsx最终渲染成真实的DOM,显示在浏览器中
  • native端:react-dom会讲jsx最终渲染成原生的控件(比如Android中的Button,iOS中的UIButton)。

引入React依赖

我们在编写React代码时,这三个依赖都是必不可少的。那么,如何添加这三个依赖呢?

  • 方式一:直接CDN引入
  • 方式二:下载后,添加本地依赖
  • 方式三:通过npm管理(通过脚手架创建项目后再使用)

CDN方式

复制代码
<script crossorigin src="https://unpkg.com/react@18/umd/react.development.js"></script>
<script crossorigin src="https://unpkg.com/react-dom@18/umd/react-dom.development.js"></script>
相关推荐
晴天161 分钟前
Chrome WebMCP 让网站学会向 AI「自我介绍」
前端·人工智能·chrome
雪芽蓝域zzs8 分钟前
二十一节:进阶:用户列表批量删除功能
前端·javascript·vue.js
研☆香16 分钟前
可选链运算符和空值合并运算符的使用
前端·javascript·vue.js
leeyi19 分钟前
SSE 到了浏览器会怎样:解析、重连与中止(第105篇)
前端
雪芽蓝域zzs22 分钟前
第二十七节:进阶:路由权限控制 + 404 / 401 全局异常页面开发
前端·javascript·html
风骏时光牛马22 分钟前
稳定性治理与疑难问题深度分析实践
前端
光影少年33 分钟前
react navite 简单原生方法双向调用示例
javascript·react native·react.js
zzzzzz31035 分钟前
react-bits:把“酷炫组件”放回 React 组件化的语境里看
javascript·react.js·动效
梦曦i9 小时前
@meng-xi/create-uni-app vs unibest:轻量脚手架与重型框架的定位之争
前端·uni-app
平头哥技术团队10 小时前
Day 10 | 工欲善其事:VS Code 配置与项目归档
android·开发语言·前端·javascript·html·交互