从零开始掌握 React 前端框架:入门指南与实战案例

🚀 从零开始掌握 React 前端框架:入门指南与实战案例

📖 前言

React 是由 Facebook 推出的前端框架,用于构建高效、可复用的用户界面(UI)。本文将手把手教你如何从零开始掌握 React,内容覆盖 基本概念环境搭建核心组件 以及一个 实战案例


📚 目录# 🚀 从零开始掌握 React 前端框架:入门指南与实战案例

📖 前言

React 是由 Facebook 推出的前端框架,用于构建高效、可复用的用户界面(UI)。本文将手把手教你如何从零开始掌握 React,内容覆盖 基本概念环境搭建核心组件 以及一个 实战案例


📚 目录

  1. React 是什么?
  2. React 环境搭建
  3. React 基础概念
  4. 核心知识点:组件与 Props
  5. 实战案例:TodoList 应用
  6. 总结与思考

🔍 React 是什么?

React 是一个开源的 JavaScript 库,主要用于创建单页面应用程序(SPA)中的视图层。

  • Declarative(声明式):UI 根据状态自动更新。
  • Component-Based(组件化):可复用的 UI 单元。
  • Virtual DOM:高效的页面渲染机制。

🛠️ React 环境搭建

要开始使用 React,我们需要搭建开发环境。

1. 安装 Node.js 与 npm

前往 Node.js 官网 下载并安装 LTS 版本。安装完成后,检查版本号:

node -v
npm -v

2. 使用 Create React App 脚手架创建项目

执行以下命令创建一个新项目:

npx create-react-app my-react-app
cd my-react-app
npm start

浏览器会自动打开 `http://localhost:3000`,你会看到一个默认的 React 页面 🎉。


🧩 React 基础概念

1. JSX 语法

JSX 是一种 JavaScript 的语法扩展,允许我们在代码中写 HTML。

示例代码:

import React from 'react';
import ReactDOM from 'react-dom';

const element = <h1>Hello, React!</h1>;
ReactDOM.render(element, document.getElementById('root'));

2. 组件

React 中的 UI 是由 组件 构成的,组件分为 类组件函数组件

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

📝 核心知识点:组件与 Props

1. Props:组件之间传递数据

Props(属性)用于父组件向子组件传递数据,示例如下:

function Greeting(props) {
  return <p>Welcome, {props.name}!</p>;
}

function App() {
  return <Greeting name="CSDN 小伙伴" />;
}

2. State:组件内部状态管理

import React, { useState } from 'react';

function Counter() {
  const [count, setCount] = useState(0);

  return (
    <div>
      <p>当前计数:{count}</p>
      <button onClick={() => setCount(count + 1)}>增加</button>
    </div>
  );
}

💻 实战案例:TodoList 应用

接下来我们将实现一个简单的 TodoList 应用

1. 创建组件结构

在 `src` 目录中创建文件:`App.js`。

import React, { useState } from 'react';

function App() {
  const [tasks, setTasks] = useState([]);
  const [input, setInput] = useState('');

  const addTask = () => {
    if (input.trim()) {
      setTasks([...tasks, input]);
      setInput('');
    }
  };

  return (
    <div>
      <h1>✅ TodoList 应用</h1>
      <input
        type="text"
        placeholder="输入任务..."
        value={input}
        onChange={(e) => setInput(e.target.value)}
      />
      <button onClick={addTask}>添加任务</button>
      <ul>
        {tasks.map((task, index) => (
          <li key={index}>{task}</li>
        ))}
      </ul>
    </div>
  );
}

export default App;

2. 运行项目

npm start

打开浏览器,你将看到一个简单的 TodoList 功能,可以添加和展示任务 🎉。


🎯 总结与思考

本文介绍了 React 的基本概念及使用方法,并通过一个简单的 TodoList 应用 帮助大家快速上手 React。希望小伙伴们能理解以下几点:

  1. React 的核心概念:组件PropsState
  2. 如何通过实践项目提升自己的开发技能。

接下来,你可以尝试增加更多功能,比如 任务删除任务标记完成,进一步熟悉 React 的开发流程!

💡 学习建议:通过查阅官方文档和做更多小项目,不断巩固和提升技能。


🏷️ 相关资源

  • React 官方文档:https://react.dev/
  • CSDN 前端社区:CSDN 前端

🌟 如果本文对你有帮助,别忘了点赞、评论和收藏哦!


作者:你的名字
CSDN 博客:[你的博客链接]
日期:2024 年 X 月 X 日

  1. React 是什么?
  2. React 环境搭建
  3. React 基础概念
  4. 核心知识点:组件与 Props
  5. 实战案例:TodoList 应用
  6. 总结与思考

🔍 React 是什么?

React 是一个开源的 JavaScript 库,主要用于创建单页面应用程序(SPA)中的视图层。

  • Declarative(声明式):UI 根据状态自动更新。
  • Component-Based(组件化):可复用的 UI 单元。
  • Virtual DOM:高效的页面渲染机制。

🛠️ React 环境搭建

要开始使用 React,我们需要搭建开发环境。

1. 安装 Node.js 与 npm

前往 Node.js 官网 下载并安装 LTS 版本。安装完成后,检查版本号:

node -v
npm -v

2. 使用 Create React App 脚手架创建项目

执行以下命令创建一个新项目:

npx create-react-app my-react-app
cd my-react-app
npm start

浏览器会自动打开 `http://localhost:3000`,你会看到一个默认的 React 页面 🎉。


🧩 React 基础概念

1. JSX 语法

JSX 是一种 JavaScript 的语法扩展,允许我们在代码中写 HTML。

示例代码:

import React from 'react';
import ReactDOM from 'react-dom';

const element = <h1>Hello, React!</h1>;
ReactDOM.render(element, document.getElementById('root'));

2. 组件

React 中的 UI 是由 组件 构成的,组件分为 类组件函数组件

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

📝 核心知识点:组件与 Props

1. Props:组件之间传递数据

Props(属性)用于父组件向子组件传递数据,示例如下:

function Greeting(props) {
  return <p>Welcome, {props.name}!</p>;
}

function App() {
  return <Greeting name="CSDN 小伙伴" />;
}

2. State:组件内部状态管理

import React, { useState } from 'react';

function Counter() {
  const [count, setCount] = useState(0);

  return (
    <div>
      <p>当前计数:{count}</p>
      <button onClick={() => setCount(count + 1)}>增加</button>
    </div>
  );
}

💻 实战案例:TodoList 应用

接下来我们将实现一个简单的 TodoList 应用

1. 创建组件结构

在 `src` 目录中创建文件:`App.js`。

import React, { useState } from 'react';

function App() {
  const [tasks, setTasks] = useState([]);
  const [input, setInput] = useState('');

  const addTask = () => {
    if (input.trim()) {
      setTasks([...tasks, input]);
      setInput('');
    }
  };

  return (
    <div>
      <h1>✅ TodoList 应用</h1>
      <input
        type="text"
        placeholder="输入任务..."
        value={input}
        onChange={(e) => setInput(e.target.value)}
      />
      <button onClick={addTask}>添加任务</button>
      <ul>
        {tasks.map((task, index) => (
          <li key={index}>{task}</li>
        ))}
      </ul>
    </div>
  );
}

export default App;

2. 运行项目

npm start

打开浏览器,你将看到一个简单的 TodoList 功能,可以添加和展示任务 🎉。


🎯 总结与思考

本文介绍了 React 的基本概念及使用方法,并通过一个简单的 TodoList 应用 帮助大家快速上手 React。希望小伙伴们能理解以下几点:

  1. React 的核心概念:组件PropsState
  2. 如何通过实践项目提升自己的开发技能。

接下来,你可以尝试增加更多功能,比如 任务删除任务标记完成,进一步熟悉 React 的开发流程!

💡 学习建议:通过查阅官方文档和做更多小项目,不断巩固和提升技能。


🏷️ 相关资源

  • React 官方文档:https://react.dev/
  • CSDN 前端社区:CSDN 前端

🌟 如果本文对你有帮助,别忘了点赞、评论和收藏哦!


作者:赵大仁
CSDN 博客:🚀 从零开始掌握 React 前端框架:入门指南与实战案例-赵大仁
日期:2024 年 12 月 17 日

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/938229.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

FireFox火狐浏览器企业策略禁止更新

一直在用火狐浏览器&#xff0c;但是经常提示更新&#xff0c;进入浏览器右上角就弹出提示&#xff0c;比较烦。多方寻找&#xff0c;一直没有找到合适的方案&#xff0c;毕竟官方没有给出禁用检查更新的选项&#xff0c;甚至about:config里都没有。 最终找到了通过企业策略控…

【Qt】按钮类控件:QPushButton、QRadioButton、QCheckBox、ToolButton

目录 QPushButton 例子&#xff1a; QRadioButton 例子&#xff1a; 按钮的常见信号函数 单选按钮分组 例子&#xff1a; QCheckButton 例子&#xff1a; QToolButton QWidget的常见属性及其功能对于它的派生类控件都是有效的(也就是Qt中的各种控件)&#xff0c;包括…

SpringBoot3 升级介绍

优质博文&#xff1a;IT-BLOG-CN 一、项目背景 截止2023.05.18&#xff0c;springboot发布了最新版本3.1.0。而在我们开发项目中&#xff0c;springboot一直使用的是1.5.8版本(相差6年的维护更新)。版本差距较大&#xff0c;很多新功能未能得到使用。例如近几年Loom的兴起&am…

运筹说 第130期 | 对策论引言

通过对对策论基础知识进行梳理和总结&#xff0c;小编绘制了《对策论思维导图》&#xff0c;如下图所示&#xff0c;对策论章节一共包含4个小节。 第1小节是对策论引言。介绍了对策论的基本概念&#xff0c;包含对策行为和对策论、对策现象的三要素、对策问题举例及对策的分类…

Windows 与 Linux 下 Ping IPv6 地址 | 常用网络命令

注&#xff1a;本文为网络命令相关文章合辑。 未整理去重。 一、IPv6 概述 IPv6 即 “Internet 协议版本 6”&#xff0c;因 IPv4 地址资源面临耗尽问题而被引入以替代 IPv4。IPv6 则提供了理论上多达 2 128 2^{128} 2128 个地址&#xff0c;有效解决地址不足困境。 IPv6 具…

密码学——密码学概述、分类、加密技术(山东省大数据职称考试)

大数据分析应用-初级 第一部分 基础知识 一、大数据法律法规、政策文件、相关标准 二、计算机基础知识 三、信息化基础知识 四、密码学 五、大数据安全 六、数据库系统 七、数据仓库. 第二部分 专业知识 一、大数据技术与应用 二、大数据分析模型 三、数据科学 密码学 大数据…

Android Studio、JDK、AGP、Gradle、kotlin-gradle-plugin 兼容性问题

文章目录 问题&#xff1a;解决办法&#xff1a;gradle与 java的版本兼容AGP与Gradle的版本兼容kotlin 与 jvm 的版本兼容KGP、Gradle、AGP兼容关系kotlin 与 java 的编译版本配置 问题&#xff1a; 你从githb上clone了一个项目&#xff0c;本地跑的时候&#xff0c;各种报错。…

ChatGPT搜索全新升级,向全体用户开放,近屿智能助力AI行业发展

12月17日&#xff0c;OpenAI在第八天直播中正式宣布ChatGPT搜索功能全面升级&#xff0c;并即日起对所有ChatGPT用户开放。此次更新不仅带来了显著的性能提升&#xff0c;还引入了多项突破性功能&#xff0c;如更快的搜索速度、全新的地图体验以及YouTube视频嵌入&#xff0c;为…

VSCode编辑+GCC for ARM交叉编译工具链+CMake构建+OpenOCD调试(基于STM32的标准库/HAL库)

本文以【STM32F103ZET6】单片机作为示例来进行演示&#xff0c;标准库/HAL库的工程是通用的&#xff0c;修改CMakeLists.txt里面的源文件和头文件引用部分即可。 更多细节请参考【VSCode编辑GCC for ARM交叉编译工具链Makefile构建OpenOCD调试&#xff08;基于STM32的标准库&am…

ResNet网络:深度学习中的革命性架构

目录 ​编辑 引言 ResNet网络的特点 1. 残差块&#xff08;Residual Block&#xff09; 2. 恒等映射&#xff08;Identity Mapping&#xff09; 3. 深层网络训练 4. Batch Normalization 5. 全局平均池化 6. 灵活的结构 ResNet的应用案例 ResNet的研究进展 实战案例…

Axure9设置画布固定

在使用AxureRP9设计原型时&#xff0c;如果遇到画布在拖动时变得难以控制&#xff0c;可以尝试在Windows系统中通过‘文件’>‘首选项’&#xff0c;或在Mac系统中通过‘AxureRP9’>‘偏好设置’进行设置&#xff0c;以稳定画布的行为。 现象 页面底层的画布&#xff0…

景联文科技入选中国信通院发布的“人工智能数据标注产业图谱”

近日&#xff0c;由中国信息通信研究院、中国人工智能产业发展联盟牵头&#xff0c;联合中国电信集团、沈阳市数据局、保定高新区等70多家单位编制完成并发布《人工智能数据标注产业图谱》。景联文科技作为人工智能产业关键环节的代表企业&#xff0c;入选图谱中技术服务板块。…

ESlint代码规范,手动与自动修复

规范说明 规则参考 - ESLint - 插件化的 JavaScript 代码检查工具 规范说明 ​ ​ 可看到是main.js文件报错分别是第三行第30个字符&#xff0c;以及第七行第一个字符 后面则是规范说明&#xff0c;可以根据说明查找相应的规范 一.手动修正 ctrl f 可以搜索 二.自动修正 …

一条线上的点

给你一个数组 points &#xff0c;其中 points[i] [xi, yi] 表示 X-Y 平面上的一个点。求最多有多少个点在同一条直线上。 提示&#xff1a; 1 < points.length < 300points[i].length 2-104 < xi, yi < 104points 中的所有点 互不相同 解析&#xff1a;使用斜…

wxpython图形用户界面编程

wxpython图形用户界面编程 一、wxpython的基础 1.1 wxpython的基础 作为图形用户界面开发工具包 wxPython&#xff0c;主要提供了如下 GUI 内容&#xff1a; 窗口。控件。事件处理。布局管理。 1.2 wxpython的类层次机构 1.3 wxpython的安装 Windows 和 macOS 平台安装&a…

【优选算法篇】位运算小课堂:从入门到精通的奇妙之旅(上篇)

文章目录 须知 &#x1f4ac; 欢迎讨论&#xff1a;如果你在学习过程中有任何问题或想法&#xff0c;欢迎在评论区留言&#xff0c;我们一起交流学习。你的支持是我继续创作的动力&#xff01; &#x1f44d; 点赞、收藏与分享&#xff1a;觉得这篇文章对你有帮助吗&#xff1…

pytest入门九:feature

fixture是pytest特有的功能&#xff0c;用以在测试执行前和执行后进行必要的准备和清理工作。使用pytest.fixture标识&#xff0c;定义在函数前面。在你编写测试函数的时候&#xff0c;你可以将此函数名称做为传入参数&#xff0c;pytest将会以依赖注入方式&#xff0c;将该函数…

Day9 神经网络的偏导数基础

多变量函数与神经网络 在神经网络中&#xff0c;我们经常遇到多变量函数。这些函数通常描述了网络的输入、权重、偏置与输出之间的关系。例如&#xff0c;一个简单的神经元输出可以表示为&#xff1a; z f ( w 1 x 1 w 2 x 2 … w n x n b ) z f(w_1x_1 w_2x_2 \ldots…

sg-exam:Star 2.2k,一套完善的在线教育平台,支持在线考试、在线学习,教育项目用它就没有错~~

​嗨&#xff0c;大家好&#xff0c;我是小华同学&#xff0c;关注我们获得“最新、最全、最优质”开源项目和高效工作学习方法 sg-exam是一个基于Java语言的在线考试系统&#xff0c;它集成了试卷管理、试题管理、考试安排、在线作答、自动阅卷等功能。该项目旨在帮助教育机构…

ArkTS中string和String/number和Number类型大小写的区别

ArkTS和TypeScript类似&#xff0c;string 和 String&#xff0c;number 和 Number 之间有一些重要的区别&#xff1a; 基本类型与对象类型 基本类型 (string, number)&#xff1a; string 和 number 是基本数据类型&#xff0c;用于表示原始值。例如&#xff1a;let str: str…