新手入门 React .tsx 项目:从零到实战
🚀 新手入门 React .tsx 项目:从零到实战 💻✨
如果你是 React 新手,刚接触 .tsx
文件,不要担心!跟着这份指南,一步一步来,你很快就能上手了!👇
📚 1. 基础知识准备
在开始 React .tsx
项目之前,先确保你对以下内容有基本了解:
✅ HTML / CSS / JavaScript:网页开发的三大基石。
✅ TypeScript:React .tsx
文件使用 TypeScript,帮助你进行类型检查。
✅ Node.js 和 npm/yarn:包管理工具,帮助你安装依赖。
🛠️ 安装 Node.js 和 npm/yarn
👉 Node.js 官方网站 下载并安装。
👉 验证安装:
node -v
npm -v
🛠️ 2. 安装 React 开发环境
React 提供了一个非常方便的脚手架工具:Create React App。
安装 React 项目
npx create-react-app my-app --template typescript
cd my-app
npm start
📌 说明:
--template typescript
表示项目将使用 TypeScript。npm start
启动开发服务器,在浏览器中打开http://localhost:3000
。
🗂️ 3. 理解 React 项目结构
my-app/
├── src/ // 主要代码目录
│ ├── App.tsx // 主组件
│ ├── index.tsx // 入口文件
│ ├── components/ // 自定义组件
│ ├── styles/ // 样式文件
│ ├── assets/ // 静态资源
│ └── App.css // 全局样式
├── public/ // 静态资源
├── package.json // 项目配置文件
└── tsconfig.json // TypeScript 配置文件
📝 关键文件解析
- index.tsx:项目的入口文件,挂载根组件。
- App.tsx:主组件,页面内容从这里开始。
- package.json:项目依赖和脚本配置。
- tsconfig.json:TypeScript 配置文件。
🧩 4. 编写第一个组件
在 src
文件夹中创建一个简单的组件:
👉 新建 src/components/HelloWorld.tsx
import React from 'react';interface Props {name: string;
}const HelloWorld: React.FC<Props> = ({ name }) => {return <h1>Hello, {name}! 👋</h1>;
};export default HelloWorld;
👉 在 App.tsx
中引入组件
import React from 'react';
import HelloWorld from './components/HelloWorld';function App() {return (<div><HelloWorld name="React 新手" /></div>);
}export default App;
👉 启动项目
npm start
✨ 在浏览器中,你将看到:
Hello, React 新手! 👋
🎨 5. 添加样式
在 HelloWorld.tsx
中添加样式:
👉 新建 src/components/HelloWorld.module.css
h1 {color: #4caf50;font-size: 24px;text-align: center;
}
👉 修改 HelloWorld.tsx
import React from 'react';
import styles from './HelloWorld.module.css';interface Props {name: string;
}const HelloWorld: React.FC<Props> = ({ name }) => {return <h1 className={styles.h1}>Hello, {name}! 👋</h1>;
};export default HelloWorld;
🔄 6. 状态管理(Hooks)
React 使用 Hooks 管理组件状态:
👉 在 App.tsx
中使用状态
import React, { useState } from 'react';function App() {const [count, setCount] = useState(0);return (<div><h1>计数器:{count}</h1><button onClick={() => setCount(count + 1)}>增加</button></div>);
}export default App;
🧠 解释:
useState
用于创建和管理组件的状态。- 点击按钮,
count
状态增加。
🌍 7. 路由管理
安装 React Router
npm install react-router-dom
👉 配置路由(App.tsx
)
import React from 'react';
import { BrowserRouter, Routes, Route } from 'react-router-dom';function Home() {return <h1>首页</h1>;
}function About() {return <h1>关于我们</h1>;
}function App() {return (<BrowserRouter><Routes><Route path="/" element={<Home />} /><Route path="/about" element={<About />} /></Routes></BrowserRouter>);
}export default App;
👉 访问页面
http://localhost:3000/
→ 首页http://localhost:3000/about
→ 关于我们
📦 8. 打包与部署
打包项目
npm run build
部署
将 build
文件夹内容上传到服务器或部署到 Vercel、Netlify 等平台。
🎯 9. 进阶学习
✅ 状态管理库:学习 Redux
或 Recoil
。
✅ 组件库:使用 Ant Design
或 Material UI
提高开发效率。
✅ 性能优化:学习 React.memo
、useMemo
和 useCallback
。
🐾 10. 学习资源
📚 推荐学习资料:
- React 官方文档
- TypeScript 官方文档
- React Router 官方文档
🎉 恭喜你!你已经成功入门 React .tsx 项目啦!
🛠️ 接下来,动手开发一个小项目吧,比如待办事项、博客系统或电商页面! 💪😊
相关文章:
新手入门 React .tsx 项目:从零到实战
🚀 新手入门 React .tsx 项目:从零到实战 💻✨ 如果你是 React 新手,刚接触 .tsx 文件,不要担心!跟着这份指南,一步一步来,你很快就能上手了!👇 Ὅ…...

基于可信数据空间的企业数据要素与流通体系建设(附ppt 下载)
近期,可信数据空间会议召开。大数据系统软件国家工程研究中心总工程师王晨发表了题为《基于可信数据空间的企业数据要素与流通体系建设》主旨演讲。 篇幅限制,部分内容如下:...
二维数组:求最大元素及其所在的行坐标及列坐标(PTA)C语言
求出NM整型数组的最大元素及其所在的行坐标及列坐标(如果最大元素不唯一,选择位置在最前面的一个)。 函数接口定义: int fun(int array[N][M]) ; 注意:函数只需靠return返回最大元素的值, 行、列坐标通过…...

WebRtc01: 课程导学、框架介绍
应用 难点 课程大纲 学习收获 涉及内容 概述 用途 学习收获...

HQChart使用教程30-K线图如何对接第3方数据44-DRAWPIE数据结构
HQChart使用教程30-K线图如何对接第3方数据44-DRAWPIE数据结构 效果图DRAWPIEHQChart代码地址后台数据对接说明示例数据数据结构说明效果图 DRAWPIE DRAWPIE是hqchart插件独有的绘制饼图函数,可以通过麦语法脚本来绘制一个简单的饼图数据。 饼图显示的位置固定在右上角。 下…...
【cuda学习日记】2.2 使用2维网络(grid)和2维块(block)对矩阵进行求和
在2.0中进行了用一维网格和块对一维向量进行了求和。 在2.1中例化了二维的网格和块。 接下来进行2维网络(grid)和2维块(block)对矩阵进行求和。 #include <stdio.h> #include <stdlib.h> #include <time.h> #i…...

深度学习中CUDA环境安装教程
首先说明,本人是小白,一次安装,可能有不对的地方,望包含。 安装CUDA 因为我们是深度学习,很多时候要用到gpu进行训练,所以我们需要一种方式加快训练速度。 通俗地说,CUDA是一种协助“CPU任务分…...

IDEA的常用设置
目录 一、显示顶部工具栏 二、设置编辑区字体按住鼠标滚轮变大变小(看需要设置) 三、设置自动导包和优化导入的包(有的时候还是需要手动导包) 四、设置导入同一个包下的类,超过指定个数的时候,合并为*&a…...
【VUE+ElementUI】通过接口下载blob流文件设置全局Loading加载进度
下载Blob流文件,并以服务形式显示文件下载进度 1、下载接口 增加 config参数,并用...config将该属性加入到请求中; xxapi.js文件中设置downloadFile下载接口 // 下载文件 export function downloadFile(data, config) {return request({ur…...
算法的五个重要特性和4个基本标准
五个特性: 1、有穷性:一个算法必须执行有穷步后结束、 2、确定性:对于每种情况下所应执行的操作,在算法中都应该有确切的规定,不会产生二义性, 使得算法的执行者和阅读者都能明确其含义以及如何执行。 3、…...
svelte5中使用react组件
在svelet5中导入并使用react组件库 svelte5中使用react组件 svelte5中使用react组件 在svelet5中导入并使用react组件库, 示例项目地址:https://github.com/shenshouer/my-svelte-react 在svelte5中当前还有问题,无法将children传递到react中渲染 使用…...
iOS - 自定义引用计数(MRC)
自定义引用计数(Custom Reference Counting)是指类可以通过重写 retain/release 等方法来实现自己的引用计数管理机制。这通常用于特殊场景下的内存管理优化。 1. 判断是否使用自定义引用计数 inline bool objc_object::hasCustomRR() {// 检查类是否…...

北航现实场景无人机VLN新基准! OpenUAV:面向真实环境的无人机视觉语言导航,平台、基准与方法
作者:Xiangyu Wang, Donglin Yang, Ziqin Wang, Hohin Kwan, Jinyu Chen, Wenjun Wu1, Hongsheng Li, Yue Liao, Si Liu 单位:北京航空航天大学人工智能学院,香港中文大学多媒体实验室,感知与交互智能中心 原文链接:…...

OpenCV计算机视觉 08 图像的旋转
图像的旋转 下面是一张小猪佩奇的照片,请进行顺时针90度,逆时针90度,180度旋转 方法一:使用了 NumPy 库的 np.rot90() 函数来实现图像的旋转 np.rot90(img, k-1) 表示将输入的图像 img 顺时针旋转 90 度, np.rot90(…...

C++感受15-Hello STL 泛型启蒙
生鱼片和STL的关系,你听过吗?泛型编程和面向对象编程,它们打架吗?行为泛型和数据泛型,各自的目的是? 0 楔 俄罗斯生鱼片,号称俄罗斯版的中国烤鸭,闻名于世。其鱼肉,源于…...

【Java 学习】对象赋值的艺术:Java中clone方法的浅拷贝与深拷贝解析,教你如何在Java中实现完美复制
💬 欢迎讨论:如对文章内容有疑问或见解,欢迎在评论区留言,我需要您的帮助! 👍 点赞、收藏与分享:如果这篇文章对您有所帮助,请不吝点赞、收藏或分享,谢谢您的支持&#x…...

基于高斯混合模型的数据分析及其延伸应用(具体代码分析)
一、代码分析 (一)清除工作区和命令行窗口 clear; clc;clear;:该命令用于清除 MATLAB 工作区中的所有变量,确保代码运行环境的清洁,避免之前遗留的变量对当前代码运行产生干扰。例如,如果之前运行的代码中…...
无人机+Ai应用场景!
军事领域 无人机AI制导技术在军事领域的应用尤为突出。通过AI技术,无人机可以自主执行侦察、监视、打击等多种任务,极大地提高了军事行动的效率和准确性。 侦察与监视:AI无人机能够利用先进的传感器和摄像头,对目标区域进行大范…...

操作手册:集成钉钉审批实例消息监听配置
此文档将记录在慧集通平台怎么实现钉钉审批实例结束或发起或取消时,能够实时的将对应的实例数据抓取出来送入第三方系统 集成平台配置 1、配置中心库,存储钉钉发送的消息,可以忽略,若不配置,则钉钉的消息将不再记录到…...
AI大模型-提示工程学习笔记4
卷首语:我所知的是我自己非常无知,所以我要不断学习。 写给AI入行比较晚的小白们(比如我自己)看的,大神可以直接路过无视了。 不同主题提示词可以完成不同基本任务,常见的提示主题有: 文本概…...

idea大量爆红问题解决
问题描述 在学习和工作中,idea是程序员不可缺少的一个工具,但是突然在有些时候就会出现大量爆红的问题,发现无法跳转,无论是关机重启或者是替换root都无法解决 就是如上所展示的问题,但是程序依然可以启动。 问题解决…...

TDengine 快速体验(Docker 镜像方式)
简介 TDengine 可以通过安装包、Docker 镜像 及云服务快速体验 TDengine 的功能,本节首先介绍如何通过 Docker 快速体验 TDengine,然后介绍如何在 Docker 环境下体验 TDengine 的写入和查询功能。如果你不熟悉 Docker,请使用 安装包的方式快…...
React Native 开发环境搭建(全平台详解)
React Native 开发环境搭建(全平台详解) 在开始使用 React Native 开发移动应用之前,正确设置开发环境是至关重要的一步。本文将为你提供一份全面的指南,涵盖 macOS 和 Windows 平台的配置步骤,如何在 Android 和 iOS…...

黑马Mybatis
Mybatis 表现层:页面展示 业务层:逻辑处理 持久层:持久数据化保存 在这里插入图片描述 Mybatis快速入门 配置HarmonyOS SDK 5.0确保Node.js版本≥14 项目初始化: ohpm init harmony/hospital-report-app 二、核心功能模块实现 1. 报告列表…...
unix/linux,sudo,其发展历程详细时间线、由来、历史背景
sudo 的诞生和演化,本身就是一部 Unix/Linux 系统管理哲学变迁的微缩史。来,让我们拨开时间的迷雾,一同探寻 sudo 那波澜壮阔(也颇为实用主义)的发展历程。 历史背景:su的时代与困境 ( 20 世纪 70 年代 - 80 年代初) 在 sudo 出现之前,Unix 系统管理员和需要特权操作的…...

基于Java+MySQL实现(GUI)客户管理系统
客户资料管理系统的设计与实现 第一章 需求分析 1.1 需求总体介绍 本项目为了方便维护客户信息为了方便维护客户信息,对客户进行统一管理,可以把所有客户信息录入系统,进行维护和统计功能。可通过文件的方式保存相关录入数据,对…...

20个超级好用的 CSS 动画库
分享 20 个最佳 CSS 动画库。 它们中的大多数将生成纯 CSS 代码,而不需要任何外部库。 1.Animate.css 一个开箱即用型的跨浏览器动画库,可供你在项目中使用。 2.Magic Animations CSS3 一组简单的动画,可以包含在你的网页或应用项目中。 3.An…...

uniapp 小程序 学习(一)
利用Hbuilder 创建项目 运行到内置浏览器看效果 下载微信小程序 安装到Hbuilder 下载地址 :开发者工具默认安装 设置服务端口号 在Hbuilder中设置微信小程序 配置 找到运行设置,将微信开发者工具放入到Hbuilder中, 打开后出现 如下 bug 解…...

【深度学习新浪潮】什么是credit assignment problem?
Credit Assignment Problem(信用分配问题) 是机器学习,尤其是强化学习(RL)中的核心挑战之一,指的是如何将最终的奖励或惩罚准确地分配给导致该结果的各个中间动作或决策。在序列决策任务中,智能体执行一系列动作后获得一个最终奖励,但每个动作对最终结果的贡献程度往往…...