当前位置: 首页 > 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.dtcms.com/a/178723.html

相关文章:

  • 实时云渲染——比像素流送节省80%精力的UE程序推流技术
  • helm的原理及作用
  • AquaCrop 模型新视角:多技术助力农业精准水管理
  • 在一台服务器上通过 Nginx 配置实现不同子域名访问静态文件和后端服务
  • 解决社区录音应用横屏状态下,录音后无法播放的bug
  • JS逆向入门案例4——某数据服务平台数据爬取
  • Unity-Shader详解-其五
  • Coco AI 开源应用程序 - 搜索、连接、协作、您的个人 AI 搜索和助手,都在一个空间中。
  • sherpa-ncnn:Endpointing(断句规则)
  • 【最新版】likeshop连锁点餐系统-PHP版+uniapp前端全开源
  • 计数排序-详解
  • 机器学习第一讲:机器学习本质:让机器通过数据自动寻找规律
  • jquery+ajax+SpringBoot实现前后端分离技术
  • Java游戏服务器开发流水账(2)开发中Maven的管理
  • React 实现 JWT 登录验证的最小可运行示例
  • Oracle EBS FORM快捷键与触发器的关系与使用
  • 永久免费的小工具,内嵌微软接口
  • 二叉搜索树的插入操作(递归遍历)
  • C语言 指针(9)
  • 动态SQL与静态SQL
  • 10.王道_HTTP
  • 【AI论文】FlexiAct:在异构场景中实现灵活的动作控制
  • Spring Boot 实现验证码生成与校验:从零开始构建安全登录系统
  • 并发与并行的关系
  • 如何防止域名DNS被劫持?
  • 【Go】优化文件下载处理:从多级复制到零拷贝流式处理
  • 极狐GitLab 容器镜像仓库功能介绍
  • 电池分压电阻检测不准的原因
  • AI日报 · 2025年5月08日|Stripe发布全球首个支付AI基础模型
  • 山东136号文实施方案与竞价细则