当前位置: 首页 > news >正文

新手入门 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 文件夹内容上传到服务器或部署到 VercelNetlify 等平台。


🎯 9. 进阶学习

状态管理库:学习 ReduxRecoil
组件库:使用 Ant DesignMaterial UI 提高开发效率。
性能优化:学习 React.memouseMemouseCallback


🐾 10. 学习资源

📚 推荐学习资料

  • React 官方文档
  • TypeScript 官方文档
  • React Router 官方文档

🎉 恭喜你!你已经成功入门 React .tsx 项目啦!
🛠️ 接下来,动手开发一个小项目吧,比如待办事项、博客系统或电商页面! 💪😊

相关文章:

新手入门 React .tsx 项目:从零到实战

&#x1f680; 新手入门 React .tsx 项目&#xff1a;从零到实战 &#x1f4bb;✨ 如果你是 React 新手&#xff0c;刚接触 .tsx 文件&#xff0c;不要担心&#xff01;跟着这份指南&#xff0c;一步一步来&#xff0c;你很快就能上手了&#xff01;&#x1f447; &#x1f4d…...

基于可信数据空间的企业数据要素与流通体系建设(附ppt 下载)

近期&#xff0c;可信数据空间会议召开。大数据系统软件国家工程研究中心总工程师王晨发表了题为《基于可信数据空间的企业数据要素与流通体系建设》主旨演讲。 篇幅限制&#xff0c;部分内容如下&#xff1a;...

二维数组:求最大元素及其所在的行坐标及列坐标(PTA)C语言

求出NM整型数组的最大元素及其所在的行坐标及列坐标&#xff08;如果最大元素不唯一&#xff0c;选择位置在最前面的一个&#xff09;。 函数接口定义&#xff1a; int fun(int array[N][M]) ; 注意&#xff1a;函数只需靠return返回最大元素的值&#xff0c; 行、列坐标通过…...

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维网络&#xff08;grid&#xff09;和2维块&#xff08;block&#xff09;对矩阵进行求和。 #include <stdio.h> #include <stdlib.h> #include <time.h> #i…...

深度学习中CUDA环境安装教程

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

IDEA的常用设置

目录 一、显示顶部工具栏 二、设置编辑区字体按住鼠标滚轮变大变小&#xff08;看需要设置&#xff09; 三、设置自动导包和优化导入的包&#xff08;有的时候还是需要手动导包&#xff09; 四、设置导入同一个包下的类&#xff0c;超过指定个数的时候&#xff0c;合并为*&a…...

【VUE+ElementUI】通过接口下载blob流文件设置全局Loading加载进度

下载Blob流文件&#xff0c;并以服务形式显示文件下载进度 1、下载接口 增加 config参数&#xff0c;并用...config将该属性加入到请求中&#xff1b; xxapi.js文件中设置downloadFile下载接口 // 下载文件 export function downloadFile(data, config) {return request({ur…...

算法的五个重要特性和4个基本标准

五个特性&#xff1a; 1、有穷性&#xff1a;一个算法必须执行有穷步后结束、 2、确定性&#xff1a;对于每种情况下所应执行的操作&#xff0c;在算法中都应该有确切的规定&#xff0c;不会产生二义性&#xff0c; 使得算法的执行者和阅读者都能明确其含义以及如何执行。 3、…...

svelte5中使用react组件

在svelet5中导入并使用react组件库 svelte5中使用react组件 svelte5中使用react组件 在svelet5中导入并使用react组件库, 示例项目地址&#xff1a;https://github.com/shenshouer/my-svelte-react 在svelte5中当前还有问题&#xff0c;无法将children传递到react中渲染 使用…...

iOS - 自定义引用计数(MRC)

自定义引用计数&#xff08;Custom Reference Counting&#xff09;是指类可以通过重写 retain/release 等方法来实现自己的引用计数管理机制。这通常用于特殊场景下的内存管理优化。 1. 判断是否使用自定义引用计数 inline bool objc_object::hasCustomRR() {// 检查类是否…...

北航现实场景无人机VLN新基准! OpenUAV:面向真实环境的无人机视觉语言导航,平台、基准与方法

作者&#xff1a;Xiangyu Wang, Donglin Yang, Ziqin Wang, Hohin Kwan, Jinyu Chen, Wenjun Wu1, Hongsheng Li, Yue Liao, Si Liu 单位&#xff1a;北京航空航天大学人工智能学院&#xff0c;香港中文大学多媒体实验室&#xff0c;感知与交互智能中心 原文链接&#xff1a;…...

OpenCV计算机视觉 08 图像的旋转

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

C++感受15-Hello STL 泛型启蒙

生鱼片和STL的关系&#xff0c;你听过吗&#xff1f;泛型编程和面向对象编程&#xff0c;它们打架吗&#xff1f;行为泛型和数据泛型&#xff0c;各自的目的是&#xff1f; 0 楔 俄罗斯生鱼片&#xff0c;号称俄罗斯版的中国烤鸭&#xff0c;闻名于世。其鱼肉&#xff0c;源于…...

【Java 学习】对象赋值的艺术:Java中clone方法的浅拷贝与深拷贝解析,教你如何在Java中实现完美复制

&#x1f4ac; 欢迎讨论&#xff1a;如对文章内容有疑问或见解&#xff0c;欢迎在评论区留言&#xff0c;我需要您的帮助&#xff01; &#x1f44d; 点赞、收藏与分享&#xff1a;如果这篇文章对您有所帮助&#xff0c;请不吝点赞、收藏或分享&#xff0c;谢谢您的支持&#x…...

基于高斯混合模型的数据分析及其延伸应用(具体代码分析)

一、代码分析 &#xff08;一&#xff09;清除工作区和命令行窗口 clear; clc;clear;&#xff1a;该命令用于清除 MATLAB 工作区中的所有变量&#xff0c;确保代码运行环境的清洁&#xff0c;避免之前遗留的变量对当前代码运行产生干扰。例如&#xff0c;如果之前运行的代码中…...

无人机+Ai应用场景!

军事领域 无人机AI制导技术在军事领域的应用尤为突出。通过AI技术&#xff0c;无人机可以自主执行侦察、监视、打击等多种任务&#xff0c;极大地提高了军事行动的效率和准确性。 侦察与监视&#xff1a;AI无人机能够利用先进的传感器和摄像头&#xff0c;对目标区域进行大范…...

操作手册:集成钉钉审批实例消息监听配置

此文档将记录在慧集通平台怎么实现钉钉审批实例结束或发起或取消时&#xff0c;能够实时的将对应的实例数据抓取出来送入第三方系统 集成平台配置 1、配置中心库&#xff0c;存储钉钉发送的消息&#xff0c;可以忽略&#xff0c;若不配置&#xff0c;则钉钉的消息将不再记录到…...

AI大模型-提示工程学习笔记4

卷首语&#xff1a;我所知的是我自己非常无知&#xff0c;所以我要不断学习。 写给AI入行比较晚的小白们&#xff08;比如我自己&#xff09;看的&#xff0c;大神可以直接路过无视了。 不同主题提示词可以完成不同基本任务&#xff0c;常见的提示主题有&#xff1a; 文本概…...

S2-Pro大模型LSTM时间序列预测实战:从理论到代码实现

S2-Pro大模型LSTM时间序列预测实战&#xff1a;从理论到代码实现 1. 为什么需要时间序列预测 时间序列预测在商业决策中扮演着越来越重要的角色。想象一下&#xff0c;如果你能提前知道下个月的销售额、股票价格或者能源消耗量&#xff0c;会为你的业务带来多大的竞争优势。这…...

TranslucentTB的Microsoft.VCLibs.140.00缺失错误:技术诊断与多维度解决方案

TranslucentTB的Microsoft.VCLibs.140.00缺失错误&#xff1a;技术诊断与多维度解决方案 【免费下载链接】TranslucentTB A lightweight utility that makes the Windows taskbar translucent/transparent. 项目地址: https://gitcode.com/gh_mirrors/tr/TranslucentTB …...

PHP网关调试失效?93%的线上事故源于这3个被忽略的底层配置项(工业场景实测数据支撑)

第一章&#xff1a;PHP网关调试失效的工业级认知盲区在高并发微服务架构中&#xff0c;PHP常作为轻量级API网关或BFF&#xff08;Backend for Frontend&#xff09;层存在。然而&#xff0c;大量团队在调试阶段遭遇“请求无响应”“日志无输出”“Xdebug断点不触发”等现象时&a…...

智慧树自动刷课终极指南:Autovisor让你的网课学习效率翻倍!

智慧树自动刷课终极指南&#xff1a;Autovisor让你的网课学习效率翻倍&#xff01; 【免费下载链接】Autovisor 2025智慧树刷课脚本 基于Python Playwright的自动化程序 [有免安装版] 项目地址: https://gitcode.com/gh_mirrors/au/Autovisor 还在为智慧树网课的繁琐操作…...

如何突破八大网盘限速:终极直链解析下载方案

如何突破八大网盘限速&#xff1a;终极直链解析下载方案 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 &#xff0c;支持 百度网盘 / 阿里云盘 / 中国移动云盘 / 天翼云盘 / 迅…...

Phi-3-mini-128k-instruct代码生成效果展示:自动补全Python与JavaScript函数

Phi-3-mini-128k-instruct代码生成效果展示&#xff1a;自动补全Python与JavaScript函数 最近在尝试各种代码生成模型&#xff0c;想找一个既轻量又聪明的编程助手。试了一圈&#xff0c;微软开源的Phi-3-mini-128k-instruct让我有点惊喜。它模型不大&#xff0c;但在理解编程…...

Leather Dress Collection 保姆级部署教程:Windows 系统下的完整指南

Leather Dress Collection 保姆级部署教程&#xff1a;Windows 系统下的完整指南 如果你是一名 Windows 用户&#xff0c;想体验最近很火的 Leather Dress Collection 这个 AI 模型&#xff0c;但看到一堆 Linux 命令就头疼&#xff0c;那这篇教程就是为你准备的。我知道&…...

Linux学习笔记(二十)--网络基础1

计算机网络背景独立模式 状态描述&#xff1a; 这是最原始的阶段。计算机是大型、昂贵且独立的设备&#xff08;如大型机&#xff09;&#xff0c;没有相互连接。每台计算机都拥有自己的专用外设&#xff08;打印机、磁带机&#xff09;&#xff0c;运行自己的程序和存储自己的…...

Step3-VL-10B-Base项目实战:搭建个人知识库的智能图片搜索引擎

Step3-VL-10B-Base项目实战&#xff1a;搭建个人知识库的智能图片搜索引擎 你是不是也遇到过这种情况&#xff1f;电脑里存了几千张照片&#xff0c;想找一张“去年夏天在海边拍的、有椰子树和蓝色遮阳伞”的照片&#xff0c;结果只能对着文件夹列表发呆&#xff0c;要么一张张…...

Flutter 框架跨平台鸿蒙开发 - 旅行足迹地图

旅行足迹地图应用欢迎加入开源鸿蒙跨平台社区&#xff1a; https://openharmonycrossplatform.csdn.net 一、项目概述 运行效果图1.1 应用简介 旅行足迹地图是一款旅行探索类应用&#xff0c;核心理念是"打造专属旅行地图"。通过可视化技术&#xff0c;将用户的旅行足…...