快速开始React开发(一)
快速开始React开发(一)
React是一个JavaScript库,用于构建交互式网站,并且能够快捷创建SPA(Single Page App),其组件化的思想也是被一再传播,无论是普通的Web网站还是嵌入移动端交互都常见到其身影,那么,搞起~~
1、快速创建项目(CRA)
CRA (Create React App) 是 React 官方提供的一个脚手架工具,用于快速创建和搭建 React 项目
在此之前,我们先配置一下马上需要用到的node环境,nvm也推荐大家看一下,考虑到可能需要不同node版本管理,这里不过多介绍,提供传送门,回来时候的状态应该是node和npm是能用的了
Node.js安装教程(2025)
(零基础)Node包管理器(nvm)安装及nodejs安装教程(2025年版)
接下来,什么都不需要做,运行这行代码就可以生成一个完整的项目
npx create-react-app my-app
这里我打算使用TypeScript作为主要的开发语言,添加--template参数指定模板
npx create-react-app my-app --template typescript
啊哦,别慌,小状况,提示需要升级了,那就妥协一下

升级到最新的create-react-app
npm uninstall -g create-react-app
npm install -g create-react-app@latest
好了,升到5.1.0,满足要求,Let’s try again!

耐心等待一小会儿,看到这个就说明项目创建成功啦,我们可以用下面红框的命令进入项目,并运行一下看看

此时,会需要选择一下浏览器,页面自动跳转,“小”功告成!

2、项目结构
使用Trae打开项目目录,肉眼可见这几项

我们简要看看每一项的作用:
node_modules/- 存放项目所有的依赖包
- 通过
npm/yarn安装的包都在这里 - 注:不需要提交到代码仓库(运行命令就能下)
public/- 存放静态资源文件
- 包含主页面模板
index.html - 存放网站图标、
manifest等公共资源
src/- 项目源代码目录
- 包含入口文件和主要组件
- 开发主要在这个目录下进行
package.json:项目配置文件README.md:项目说明文档.gitignore:Git忽略配置package-lock.json:依赖版本锁定文件tsconfig.json:TypeScript 编译和类型检查的配置文件(ts项目特有)
以上大概有些印象即可,主要开发用到比较多的还是src/,这里将会不断随着业务的复杂程度扩充,之后则需要更加细致进行分类管理,比方说下面这样:
my-app/
├── src/
│ ├── api/ # API 接口管理
│ │ ├── user.ts # 用户相关接口
│ │ └── index.ts # API 统一导出
│ │
│ ├── assets/ # 静态资源
│ │ ├── images/ # 图片资源
│ │ ├── styles/ # 全局样式
│ │ └── fonts/ # 字体文件
│ │
│ ├── components/ # 公共组件
│ │ ├── Button/
│ │ │ ├── index.tsx
│ │ │ └── style.module.scss
│ │ └── index.ts
│ │
│ ├── constants/ # 常量配置
│ │ ├── api.ts # 接口地址
│ │ └── enum.ts # 枚举值
│ │
│ ├── hooks/ # 自定义 Hooks
│ │ └── useAuth.ts
│ │
│ ├── layouts/ # 布局组件
│ │ └── MainLayout.tsx
│ │
│ ├── pages/ # 页面组件
│ │ └── Home/
│ │ ├── components/ # 页面级组件
│ │ ├── index.tsx
│ │ └── style.module.scss
│ │
│ ├── store/ # 状态管理
│ │ ├── modules/ # 模块分类
│ │ └── index.ts
│ │
│ ├── types/ # TypeScript 类型
│ │ └── user.d.ts
│ │
│ ├── utils/ # 工具函数
│ │ ├── request.ts # 请求封装
│ │ └── storage.ts # 存储相关
│ │
│ ├── App.tsx
│ └── index.tsx
│
├── public/ # 静态公共资源
├── tests/ # 测试文件目录
├── package.json
└── tsconfig.json
一点点开始吧。。。
相关文章:
快速开始React开发(一)
快速开始React开发(一) React是一个JavaScript库,用于构建交互式网站,并且能够快捷创建SPA(Single Page App),其组件化的思想也是被一再传播,无论是普通的Web网站还是嵌入移动端交互…...
2025最新Transformer模型及深度学习前沿技术应用
第一章、注意力(Attention)机制 1、注意力机制的背景和动机(为什么需要注意力机制?注意力机制的起源和发展里程碑)。 2、注意力机制的基本原理(什么是注意力机制?注意力机制的数学表达与基本公…...
极狐GitLab 正式发布安全版本17.9.1、17.8.4、17.7.6
本分分享极狐GitLab 补丁版本 17.9.1、17.8.4、17.7.6 的详细内容。这几个版本包含重要的缺陷和安全修复代码,我们强烈建议所有私有化部署用户应该立即升级到上述的某一个版本。对于极狐GitLab SaaS,技术团队已经进行了升级,无需用户采取任何…...
[环境搭建篇] Windows 环境下如何安装Docker工具
Windows 环境下如何安装Docker工具 1. 检查系统要求2. 启用WSL 2和虚拟化步骤一:启用WSL步骤二:启用虚拟化(Hyper-V)步骤三:安装WSL 2内核 3. 安装Docker Desktop4. 配置Docker5. 家庭版用户替代方案6. 常见问题解决问…...
JavaScript 数组和字符串方法详解
一、数组方法 数组方法是操作数组的核心工具,分为修改原数组和返回新数组两类。 1. 常用修改原数组的方法 方法参数返回值说明示例push...items新长度末尾添加元素arr.push(4) → [1,2,3,4]pop无删除的元素删除最后一个元素arr.pop() → 3(原数组变[1,…...
达梦数据库系列之Mysql项目迁移为达梦项目
达梦数据库系列之Mysql项目迁移为达梦项目 1 达梦数据库安装及MySql数据迁移2 SpringBoot项目迁移2.1 驱动包引入2.2 驱动类配置2.3 数据源配置2.4 flowable迁移2.4.1 异常问题2.4.2 解决 3 迁移常见问题3.1 不是 GROUP BY 表达式3.1.1 dm.ini 开启Mysql兼容模式3.1.2 修改动态…...
10个实用IntelliJ IDEA插件
精心整理了最新的面试资料和简历模板,有需要的可以自行获取 点击前往百度网盘获取 点击前往夸克网盘获取 以下是为提升开发效率推荐的10个实用IntelliJ IDEA插件,涵盖代码质量、效率工具及热门框架支持: 一、代码质量与规范 SonarLint 实时…...
10分钟从零开始搭建机器人管理系统(飞算AI)
1. 安装插件 https://www.feisuanyz.com/ 2. Intellij IDEA中运行 创建一个BS架构的机器人远程操控系统,具备机器人状态及位置实时更新,可以实现机器人远程遥控,可以对机器人工作日志进行统计分析,以及其它管理系统的常用功能3…...
[自动驾驶-传感器融合] 多激光雷达的外参标定
文章目录 引言外参标定原理ICP匹配示例参考文献 引言 多激光雷达系统通常用于自动驾驶或机器人,每个雷达的位置和姿态不同,需要将它们的数据统一到同一个坐标系下。多激光雷达外参标定的核心目标是通过计算不同雷达坐标系之间的刚性变换关系(…...
怎么让呼叫中心支持高并发
基于FreeSWITCH的呼叫中心系统并发性能优化指南 在呼叫中心系统建设中,高并发处理能力是衡量系统稳定性和效率的核心指标。作为开源软交换平台的代表,FreeSWITCH凭借其线程模型和模块化架构,天然适合高并发场景。然而,实际应用中仍…...
Elasticsearch简单学习
1、依赖的导入 <!--ES依赖--> <dependency><groupId>org.elasticsearch.client</groupId><artifactId>elasticsearch-rest-high-level-client</artifactId> </dependency>2、客户端链接 RestHighLevelClient client new RestHigh…...
就像BGP中的AS_PATH一样,无论路途多远,我愿意陪你一起走——基于华为ENSP的BGP的路由负载均衡及过滤深入浅出
本篇技术博文摘要 🌟 本文内容涵盖了BGP负载均衡的基本概念、配置技巧和在实际网络中的应用,包括如何在华为ENSP上实现负载均衡和路由过滤。通过配置BGP的前缀列表、ACL以及路由过滤策略,可以实现网络流量的精确控制和优化,提高网…...
valgrind 检测多线程 bug,检测 并发 bug concurrent bug parallel bug
valgrind --toolhelgrind ./your_program 如果检测的对象是大型程序,可以设定仅在某些函数中开启 valgrind 的检测: Valgrind 提供了一些客户请求(client requests),可以在代码中插入特定的宏来控制 Valgrind 的行为。…...
游戏引擎学习第135天
仓库:https://gitee.com/mrxiao_com/2d_game_3 回顾 game_asset.cpp 的创建 在开发过程中,不使用任何现成的游戏引擎或第三方库,而是直接基于 Windows 进行开发,因为 Windows 目前仍然是游戏的标准平台,因此首先在这个环境中进行…...
异步操作返回原始上下文
是什么? 在讨论同步上下文执行回调的概念时,我们首先需要了解一些基本概念:同步与异步操作、上下文以及回调函数。 同步与异步操作: 同步操作是指代码按照顺序依次执行,每个操作必须等待前一个操作完成才能开始。这便…...
区块链中的数字签名:安全性与可信度的核心
数字签名是区块链技术的信任基石,它像区块链世界的身份证和防伪标签,确保每一笔交易的真实性、完整性和不可抵赖性。本文会用通俗的语言,带你彻底搞懂区块链中的数字签名! 文章目录 1. 数字签名是什么?从现实世界到区块…...
vulnhub渗透日记23:bulldog
声明 文中涉及操作均来自靶机虚拟环境,禁止用于真实环境,任何未经授权的渗透测试都是违法行为! 开搞 首先nmap扫描目标机开放端口和服务 访问80端口 扫目录撒 发现登录口 点击web-shell提示登录后才能使用 /dev/下面查看网页源码发现村咋h…...
macOS - 使用 tmux
文章目录 安装 tmux使用更多快捷键说明 安装 tmux brew install tmux使用 在终端输入 tmux 进入 tmux 界面,然后 输入 Control Option B 进入交互模式 输入 % 左右分栏," 上下分割 上一个窗格:{,下一个:} PS…...
Armbian: 轻量级 ARM 设备专用 Linux 发行版全面解析
引言 在嵌入式开发和物联网(IoT)领域,选择合适的操作系统至关重要。对于 Raspberry Pi、Orange Pi、Banana Pi 以及 Rockchip、Amlogic、Allwinner 等 ARM 平台上的单板计算机(SBC),一个高效、轻量级并且易…...
微服务通信:用gRPC + Protobuf 构建高效API
引言 在微服务架构中,服务之间的通信是系统设计的核心问题之一。传统的RESTful API虽然简单易用,但在性能、类型安全和代码生成等方面存在一定的局限性。gRPC作为一种高性能、跨语言的RPC框架,结合Protobuf(Protocol Buffers&…...
OpenClaw安全加固实践:Qwen3-32B私有镜像+本地防火墙配置
OpenClaw安全加固实践:Qwen3-32B私有镜像本地防火墙配置 1. 为什么需要安全加固? 当我第一次看到OpenClaw能够自动操作我的电脑时,既兴奋又担忧。兴奋的是它能够帮我完成重复性工作,担忧的是它本质上是一个拥有系统操作权限的AI…...
别再只盯着蓝牙和ZigBee了!用Telink TLSR8258芯片的2.4G私有协议,自己动手做个低功耗遥控器
从零构建2.4G私有协议遥控器:Telink TLSR8258实战指南 当市面上大多数IoT设备还在蓝牙和ZigBee的框架下挣扎时,Telink TLSR8258芯片的2.4G私有协议正在悄然改写低功耗无线通信的规则。我曾在一个智能农业项目中,需要控制200米外的灌溉阀门&am…...
OpenClaw+Qwen3.5-9B隐私方案:完全离线的个人数据整理流程
OpenClawQwen3.5-9B隐私方案:完全离线的个人数据整理流程 1. 为什么需要完全离线的数据整理方案 上个月我遇到一个棘手问题:手头有一批涉及商业机密的客户资料需要整理归档,但公司内网策略禁止上传任何文件到云端。尝试用传统自动化工具时&…...
机场接送机哪个APP便宜?2026年实测告诉你答案
作品声明:个人观点、仅供参考。深夜落地浦东机场,拖着行李箱走向网约车候车区,抬头一看——溢价2.3倍,排队人数67人。这是今年3月初一位旅客的真实经历,在社交媒体上引发了不少共鸣。随着2026年民航出行持续升温&#…...
XXE漏洞实战:CTF大赛压轴题型解析
题目靶场过大,可以关注我私信xxe回复你靶场 xxe靶场环境搭建 搭建靶场,进入靶场发现这是一个Linux登陆界面,第一个坑就是以为要进行爆破进入虚拟机内部,考官实际上考察xxe漏洞,不需要进入靶场内部,想一想…...
AnimateDiff深度探索:如何零训练解锁个性化动画生成?
AnimateDiff深度探索:如何零训练解锁个性化动画生成? 【免费下载链接】AnimateDiff Official implementation of AnimateDiff. 项目地址: https://gitcode.com/gh_mirrors/an/AnimateDiff 发现AI动画生成的新境界!AnimateDiff作为一款…...
自定义游戏环境:开源启动器PCL2-CE的多场景解决方案
自定义游戏环境:开源启动器PCL2-CE的多场景解决方案 【免费下载链接】PCL-CE PCL2 社区版,可体验上游暂未合并的功能 项目地址: https://gitcode.com/gh_mirrors/pc/PCL-CE PCL2-CE社区版作为一款开源的Minecraft启动工具,通过模块化设…...
效率飙升:借助快马AI自动化生成openclaw社区核心功能模块
最近在给openclaw中文社区官网开发效率工具模块时,发现用传统方式从头写代码特别耗时。经过实践,我发现用InsCode(快马)平台可以大幅提升开发效率,今天就分享下具体实现过程。 需求分析与模块设计 这个效率工具模块需要包含三个核心功能&…...
Qwen3-ForcedAligner-0.6B效果实测:不同方言口音(潮汕/客家/闽南)识别对比
Qwen3-ForcedAligner-0.6B效果实测:不同方言口音(潮汕/客家/闽南)识别对比 1. 引言:当AI语音识别遇上“十里不同音” 你有没有遇到过这样的尴尬?用手机语音转文字,自己明明说的是普通话,结果出…...
4个实战场景下的AssetStudio高效资源处理系统:Unity资产逆向工程最佳实践
4个实战场景下的AssetStudio高效资源处理系统:Unity资产逆向工程最佳实践 【免费下载链接】AssetStudio AssetStudio is an independent tool for exploring, extracting and exporting assets. 项目地址: https://gitcode.com/gh_mirrors/ass/AssetStudio A…...
