react入门笔记

什么是React?

React是一个用于创建用户界面的开源前端javaScript库。它是声明式的、高效的和灵活的,并且他坚持基于组件的方法,这使得我们能够创建可重用的UI组件。

React是一个开源的前端javaScript库,用于构建用户界面或者UI组件。它是由Facebook和一个由个人开发者和公司组成的社区维护。它本质上是一个渲染组件的库,尽管他们不是传统的web组件。

React使用一种名为JSX(使用JavaScript+XML)的语言,开发人员可以在React组件中包含所有前端代码(包括HTML和CSS)。

React最酷的一点是它完全关注组件渲染过程。它在某种程度上遵循了单一职责原则。将组件渲染在web应用的屏幕上,但不需要担心路由、状态管理或构建整个前端应用所需的其他工具。

从头搭建会非常麻烦,但是同样也会学到很多东西,熟练后,可以使用create-react-app等工具快速构建React开发环境。

React是如何工作的?

React不是直接操作DOM,而是在内存中创建一个虚拟DOM(Virtual DOM),在对浏览器DOM进行更改之前,会在其中进行所有必要的操作。

React会找出已经进行了哪些更改,并且之更改需要更改的内容,整个过程中使用了diff算法,通过diff算法可以避免一些不必要的DOM操作,从而提升性能。

(虚拟DOM是真实DOM的任何一种表示形式(例如JS对象表示)。当我们在虚拟DOM树中更改某些内容时,我们会得到一个新的虚拟树。diff算法比较这两种树(旧树和新树)找出差异。这种方式除了提升性能,也方便了与其他环境集成。)

如何使用?

引入CDN

您可以直接在HTML文件练习、编写React,通过CDN引入的方式:

javascript 复制代码
<!-- 加载 React 和 React DOM 的 UMD 版本 -->
    <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>
    <!-- 使用 JSX 需要用到的 Babel -->
    <script src="https://unpkg.com/@babel/standalone/babel.min.js"></script>

一个简单的例子:

javascript 复制代码
<div id="root"></div>
// ReactDOM。渲染在React 18中不再被支持。请使用createRoot。在你切换到新的API之前,你的应用程序会像运行React 17一样运行。
// React 17
ReactDOM.render(<Hello />, document.getElementById("root"));
// React 18
ReactDOM.createRoot(document.getElementById('root')).render(<Hello />);

并使用特殊的 text/babel MIME类型加载您的脚本。

(Tips:当然,上述提供的版本仅用于开发环境,您可以使用压缩优化后可用于生产环境的React版本。另外,我们为什么要在script标签上使用crossorigin属性,都可以在React官网中找到。)

未完,每天会加入一部分,纯手打,有点慢,只有晚上一点时间写,见谅

相关推荐
专业抄代码选手1 分钟前
【JS】instanceof 和 typeof 的使用
前端·javascript·面试
用户0079813620971 分钟前
6000 字+6 个案例:写给普通人的 MCP 入门指南
前端
用户87612829073746 分钟前
前端ai对话框架semi-design-vue
前端·人工智能
干就完了19 分钟前
项目中遇到浏览器跨域前端和后端解决方案以及大概过程
前端
我是福福大王11 分钟前
前后端SM2加密交互问题解析与解决方案
前端·后端
实习生小黄14 分钟前
echarts 实现环形渐变
前端·echarts
_未知_开摆22 分钟前
uniapp APP端在线升级(简版)
开发语言·前端·javascript·vue.js·uni-app
sen_shan34 分钟前
Vue3+Vite+TypeScript+Element Plus开发-02.Element Plus安装与配置
前端·javascript·typescript·vue3·element·element plus
疾风铸境1 小时前
Qt5.14.2+mingw64编译OpenCV3.4.14一次成功记录
前端·webpack·node.js
晓风伴月1 小时前
Css:overflow: hidden截断条件‌及如何避免截断
前端·css·overflow截断条件