React 前端框架入门

news/2024/12/28 1:02:25/

这里写目录标题

  • React 前端框架入门
    • 什么是 React?
    • 核心特性
    • 基本概念
      • 1. JSX
      • 2. 组件
      • 3. State 和 Props
      • 4. 生命周期
      • 5. React Hooks
    • React 应用示例
    • 项目结构
    • 如何启动 React 项目
    • 参考资料

React 前端框架入门

什么是 React?

React 是由 Facebook 开发并开源的一个用于构建用户界面的 JavaScript 库
它的核心特点是组件化和响应式更新,适用于单页应用 (SPA) 和复杂前端界面的开发。

核心特性

  1. 组件化开发

    • UI 被拆分为独立、可复用的组件。
    • 每个组件有自己的状态和生命周期。
  2. 声明式编程

    • 使用简单的代码描述 UI。
    • React 会根据状态更新自动处理 DOM 变更。
  3. 虚拟 DOM

    • 提高性能:通过比较虚拟 DOM 和真实 DOM 的差异,只更新必要的部分。
  4. 单向数据流

    • 数据从父组件流向子组件,便于管理。
  5. React Hooks

    • 使函数组件也能拥有状态和生命周期特性。

基本概念

1. JSX

JSX 是一种在 JavaScript 中嵌入 HTML 的语法,类似模板语言。

const element = <h1>Hello, React!</h1>;

2. 组件

组件是 React 的基础单元,可以分为 函数组件类组件

  • 函数组件
function Welcome(props) {return <h1>Hello, {props.name}!</h1>;
}
  • 类组件
class Welcome extends React.Component {render() {return <h1>Hello, {this.props.name}!</h1>;}
}

3. State 和 Props

  • Props: 用于从父组件向子组件传递数据,组件是只读的。
  • State: 每个组件的内部状态,可随事件或操作动态变化。

4. 生命周期

React 提供了一系列生命周期方法,用于控制组件的渲染和更新过程。

生命周期阶段方法描述
挂载componentDidMount初始化后运行,如数据请求。
更新componentDidUpdate状态或属性更新后运行。
卸载componentWillUnmount清理工作,如取消订阅。

5. React Hooks

Hooks 是函数组件的新特性,用于处理状态和生命周期。

  • 使用 useState 管理状态
import React, { useState } from "react";function Counter() {const [count, setCount] = useState(0);return (<div><p>你点击了 {count} 次</p><button onClick={() => setCount(count + 1)}>点击我</button></div>);
}
  • 使用 useEffect 管理副作用
import React, { useEffect } from "react";function Example() {useEffect(() => {console.log("组件已挂载");return () => {console.log("组件已卸载");};}, []);return <div>Hello, Hooks!</div>;
}

React 应用示例

以下是一个简单的计数器应用:

import React, { useState } from "react";
import ReactDOM from "react-dom";function Counter() {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>);
}ReactDOM.render(<Counter />, document.getElementById("root"));

项目结构

React 项目通常使用 Create React App 创建,其默认结构如下:

my-app/
├── src/
│   ├── App.js         # 主组件文件
│   ├── index.js       # 入口文件
│   ├── components/    # 自定义组件目录
│   └── styles/        # 样式文件
├── public/
│   └── index.html     # HTML 模板
├── package.json       # 项目依赖和配置

如何启动 React 项目

  1. 安装 Node.js 和 npm。
  2. 创建 React 项目:
    npx create-react-app my-app
    cd my-app
    
  3. 启动项目:
    npm start
    

参考资料

  • React 官方文档
  • React 中文文档

http://www.ppmy.cn/news/1558203.html

相关文章

【JAVA高级篇教学】第五篇:OpenFeign 微服务调用注意事项

在微服务架构中&#xff0c;OpenFeign 是一种常用的 HTTP 客户端工具&#xff0c;用于实现服务之间的调用。它提供了声明式的接口调用方式&#xff0c;大幅简化了开发工作。然而&#xff0c;在实际使用中&#xff0c;需要注意一些细节&#xff0c;尤其是在处理 GET、POST 请求和…

开关电源特点、分类、工作方式

什么叫开关电源随着电力电子技术的发展和创新&#xff0c;使得开关电源技术也在不断地创新。目前&#xff0c;开关电源以小型、轻量和高效率的特点被广泛应用几乎所有的电子设备&#xff0c;是当今电子信息产业飞速发展不可缺少的一种电源方式。 开关电源是利用现代电力电子技…

MySQL三层B+树能存多少数据

结论 bigint类型的索引&#xff08;8字节&#xff09;&#xff0c;一条数据假设是1KB的话&#xff0c; 三层B树 能存2000万条数据 该题主要考察数据如何在B树中存储的 计算思路 1.计算叶节点的大小 2.计算子节点的个数&#xff0c;由此算出第三层叶子节点的个数&#xff08;n*n…

前端实习近期小结

有一小段时间没有更新了&#xff0c;年前的业务需求比较多而且急&#xff0c;今日凌晨&#xff08;2点多还在修改、提交代码到库&#xff09;还好这次是远程办公&#xff0c;忙完还可以立马洗澡休息.. 忙里偷闲&#xff0c;更新一下前端实习近况吧。现在写这篇博客的心情也比较…

开源轮子 - Apache Common

Apache Common 文章目录 Apache Common一&#xff1a;BeanUtils1&#xff1a;核心功能预览2&#xff1a;深入PropertyUtils3&#xff1a;BeanUtils的高级应用4&#xff1a;ConvertUtils的威力4.1&#xff1a;基本使用4.2&#xff1a;我要的异常呢&#xff1f;4.3&#xff1a;探…

下载运行Vue开源项目vue-pure-admin

git地址&#xff1a;GitHub - pure-admin/vue-pure-admin: 全面ESMVue3ViteElement-PlusTypeScript编写的一款后台管理系统&#xff08;兼容移动端&#xff09; 安装pnpm npm install -g pnpm # 国内 淘宝 镜像源 pnpm config set registry https://registry.npmmirror.com/…

计算机前沿技术-人工智能算法-大语言模型-最新研究进 2024-12-22

计算机前沿技术-人工智能算法-大语言模型-最新研究进 2024-12-22 目录 文章目录 计算机前沿技术-人工智能算法-大语言模型-最新研究进 2024-12-22目录1. FaultExplainer: Leveraging Large Language Models for Interpretable Fault Detection and Diagnosis2. Answer Set Netw…

事件驱动编程与异步编程:原理、对比及实践案例

在编程领域&#xff0c;事件驱动编程&#xff08;Event-Driven Programming&#xff09;与异步编程&#xff08;Asynchronous Programming&#xff09;是两种极为关键的编程范式&#xff0c;它们对于提升程序运行效率与响应速度效果显著&#xff0c;尤其在应对I/O密集型任务以及…