React 前端框架简介

ops/2024/12/25 13:03:33/

React 前端框架>前端框架简介

React 是一个高效、灵活且开源的 JavaScript 库,用于构建用户界面 (UI)。
它专注于 视图层,通常与其他工具结合使用来开发复杂的前端应用。


为什么选择 React?

  • 轻量灵活:仅负责视图层,适配多种框架或工具链。
  • 组件化:UI 被拆分为独立模块,代码更可维护。
  • 高效更新:基于虚拟 DOM 技术,最小化页面重绘。
  • 生态成熟:拥有丰富的工具链和社区支持。

核心概念速览

1. JSX —— 简化 UI 声明

JSX 是 React 独有的语法扩展,允许你在 JavaScript 中直接书写 HTML 元素。

const greeting = <h1>欢迎使用 React!</h1>;

2. 组件 —— 构建模块化 UI

React 的每一部分 UI 都是一个组件。组件可以是函数或类:

  • 函数组件
function Welcome() {return <h2>欢迎!</h2>;
}
  • 类组件
class Welcome extends React.Component {render() {return <h2>欢迎!</h2>;}
}

3. Props 和 State

  • Props: 外部传入,组件不可修改。
  • State: 内部管理,随事件动态更新。

4. React Hooks

使用 Hooks,函数组件也能管理状态和副作用。

import React, { useState } from "react";function Counter() {const [count, setCount] = useState(0);return (<div><button onClick={() => setCount(count + 1)}>点击 {count}</button></div>);
}

实现一个基础应用:计数器

  1. 创建入口文件 index.js
import React from "react";
import ReactDOM from "react-dom";
import App from "./App";ReactDOM.render(<App />, document.getElementById("root"));
  1. 创建主组件 App.js
import React, { useState } from "react";function App() {const [count, setCount] = useState(0);return (<div><h1>计数器</h1><p>当前值:{count}</p><button onClick={() => setCount(count + 1)}>增加</button><button onClick={() => setCount(count - 1)}>减少</button></div>);
}export default App;
  1. 启动项目
    确保安装了 create-react-app 工具,然后运行:
npx create-react-app my-counter
cd my-counter
npm start

浏览器会自动打开 http://localhost:3000,展示你的 React 计数器应用。


文件结构和组织

以下是 React 项目推荐的文件组织:

src/
├── components/    # 存放可复用组件
├── App.js         # 主功能组件
├── index.js       # 入口文件
├── styles/        # 样式文件
└── utils/         # 工具函数

高级特性概述

  • Context: 用于在组件树中共享数据(如主题、语言)。
  • React Router: 为单页应用提供路由功能。
  • Redux / Zustand: 适合管理复杂的全局状态。
  • React Server Components: 用于服务器端渲染,提升首屏性能。

常见问题与优化

1. 性能优化

  • 使用 React.memo 防止不必要的组件重新渲染。
  • 拆分组件,按需加载模块 (Code Splitting)。

2. 调试工具

安装 Chrome 插件 React Developer Tools,方便调试组件结构和状态。


资源推荐

  • React 官方文档
  • React 中文文档
  • Create React App 指南

http://www.ppmy.cn/ops/144853.html

相关文章

C++如何处理对象的状态变化?如何实现工厂模式?

1&#xff09;如何处理对象的状态变化&#xff1f; 在 C中&#xff0c;可以通过以下几种方式处理对象的状态变化&#xff1a; 一、成员函数 成员函数可以修改对象的内部状态。例如&#xff1a; class MyClass { private:int value; public:MyClass(int initialValue) : value(i…

[c++11(二)]Lambda表达式和Function包装器及bind函数

1.前言 Lambda表达式着重解决的是在某种场景下使用仿函数困难的问题&#xff0c;而function着重解决的是函数指针的问题&#xff0c;它能够将其简单化。 本章重点&#xff1a; 本章将着重讲解lambda表达式的规则和使用场景&#xff0c;以及function的使用场景及bind函数的相关使…

V900新功能-电脑不在旁边,通过手机给PLC远程调试网关配置WIFI联网

您使用BDZL-V900时&#xff0c;是否遇到过以下这种问题&#xff1f; 去现场配置WIFI发现没带电脑&#xff0c;无法联网❌ 首次配置WIFI时需使用网线连电脑&#xff0c;不够快捷❌ 而博达智联为解决该类问题&#xff0c;专研了一款网关配网工具&#xff0c;实现用户现场使用手机…

Hadoop组成概述

Hadoop主要由HDFS、Mapreduce、yarn三部分组成&#xff0c;hdfs负责分布式文件数据的存储&#xff0c;yarn复杂资源的调度&#xff0c;mapreduce负责运算。 一、hdfs架构 namenode&#xff1a;存储文件的元数据信息 datanode&#xff1a;存储真实数据 2nn&#xff1a;对nam…

视频汇聚融合云平台Liveweb一站式解决视频资源管理痛点

随着5G技术的广泛应用&#xff0c;各领域都在通信技术加持下通过海量终端设备收集了大量视频、图像等物联网数据&#xff0c;并通过人工智能、大数据、视频监控等技术方式来让我们的世界更安全、更高效。然而&#xff0c;随着数字化建设和生产经营管理活动的长期开展&#xff0…

k8s-metrics-server

一&#xff1a;拉取镜像 直接从阿里云的镜像仓库拉取&#xff0c;国外的镜像仓库比较慢。。。。 docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/metrics-server:v0.7.2 打包镜像&#xff0c;之后传到k8s的服务器上面 docker save -o metrics-server.ta…

【动手学轨迹预测】2.3 场景表征方法

场景表征是指在所有可用的场景信息数据中, 提取出对于预测网络有用的数据, 并将其转换为易于模型学习的数据格式. 对于预测网络来说, 最重要的数据是交通参与者的历史轨迹和地图信息, 表达它们的常见方法有:栅格化和稀疏化 2.1.1 栅格化 多通道表达 如上图所示, 将历史轨迹和…

python+PyPDF2实现PDF的文本内容读取、多文件合并、旋转、裁剪、缩放、加解密、添加水印

目录 读取内容 合并文件 旋转 缩放 裁剪 加密和解密 添加水印 安装&#xff1a;pip install PyPDF2 -i https://pypi.tuna.tsinghua.edu.cn/simple 读取内容 from PyPDF2 import PdfReader, PdfMerger, PdfWriterdef read_pdf(pdf_path):pdf_reader PdfReader(pdf_p…