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

vite 初始化react项目

一. 初始化

npm create vite@latest
  • Project name 项目名,例如:todo-list
  • Select a framework 选:React
  • Select a variant 选:TypeScript
npm install   //安装依赖
npm run dev  //启动项目

这样一个简单的react项目就实现了。

二. 添加路由

npm install react-router-dom
  1. 修改main.tsx文件,使用BrowserRouter包裹
import React from 'react'
import App from './App.tsx'
import ReactDOM from 'react-dom/client'
import { BrowserRouter } from 'react-router-dom'ReactDOM.createRoot(document.getElementById('root')!).render(<React.StrictMode><BrowserRouter><App /></BrowserRouter></React.StrictMode>
)
  1. 创建页面组件src/pages,创建页面。
    例:src/pages/Home.tsx
export default function Home() {return (<div>Home</div>)
}
  1. 在App.tsx中引入页面,页面使用包裹,使用Link进行页面跳转
import { Routes, Route, Link } from 'react-router-dom'
import Home from './pages/Home'
import About from './pages/About'function App() {return (<div className="p-4"><nav className="space-x-4"><Link to="/">🏠 Home</Link></nav><Routes><Route path="/" element={<Home />} /></Routes></div>)
}export default App
npm run dev 启动项目

三. 封装路由

为了更方便维护,可以直接将路由配置封装到专门的文件内。
创建路由组件src/router/index.tsx
index.tsx

import { createBrowserRouter } from 'react-router-dom'
import Home from '@/pages/Home'
import About from '@/pages/About'const router = createBrowserRouter([{path: '/',element: <Home />,},{path: '/about',element: <About />,},...
])export default router

我删除了app.tsx文件,直接在main.tsx中创建App渲染。

import ReactDOM from "react-dom/client";
import { RouterProvider } from "react-router-dom";
import router from "@/router";const App = () => {return <RouterProvider router={router} />;
};ReactDOM.createRoot(document.getElementById("root")!).render(<App />);
npm run dev 启动项目
http://www.xdnf.cn/news/335161.html

相关文章:

  • UV使用官网
  • C++GO语言微服务和服务发现
  • mac连接lniux服务器教学笔记
  • c++中的引用
  • C# 方法(输出参数)
  • x64dbg技巧
  • 如何在Vue-Cli中使用Element-UI和Echarts和swiper插件(低版本)
  • 视频编解码学习7之视频编码简介
  • 红黑树详解初版
  • Java数据结构——Queue
  • 使用Deployment部署运行Nginx和Apache服务
  • Java复习笔记-基础
  • Spark缓存--cache方法
  • leetcode 3342. 到达最后一个房间的最少时间 II 中等
  • ​无线手持吸尘器无刷BLDC驱动方案功能介绍---【其利天下】
  • Crawl4AI:高效的开源 Python 网页爬取与数据提取库
  • php java go python面向对象的设计原则和常用设计模式
  • 构建高可维护、易测试的异步任务系统:基于 Celery + Redis + Eventlet 的模块化架构实践
  • AI日报 · 2025年5月08日|Stripe发布全球首个支付AI基础模型
  • 论坛系统开发(0-1) (上 前置知识介绍)
  • 解锁跨平台开发的新时代——Compose Multiplatform
  • Python3 上下文管理器:优雅管理资源的艺术
  • JVM运行时数据区域(Run-Time Data Areas)的解析
  • Linux系统管理与编程15:vscode与Linux连接进行shell开发
  • HTTP Error 500.31 - Failed to load ASP.NET Core runtime
  • GuPPy-v1.2.0安装与使用-生信工具52
  • Asp.Net Core IIS发布后PUT、DELETE请求错误405
  • Docker封装深度学习模型
  • 从知识图谱到精准决策:基于MCP的招投标货物比对溯源系统实践
  • Linux:libc库简单设计