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

手把手教你用Vue3+TypeScript+Vite搭建后台管理系统

手把手教你用 Vue3 + TypeScript + Vite 搭建后台管理系统(超详细|零基础可上手)

还在用 Vue2 + Webpack 搭项目?是时候换上 Vue3 + TypeScript + Vite 组合了!
本文带你从 0 到 1,一步步搭建一个结构清晰、可扩展的后台管理系统,适合学习、接私活、写简历项目!

✅ 支持 TS|路由权限|Pinia 状态管理|Element Plus|Axios 封装|项目结构规范


🚀 第一步:创建项目

使用 Vite 快速初始化(速度快到飞起):

npm create vite@latest my-admin -- --template vue-ts
  • vue-ts:Vue + TypeScript 模板
  • Vite 热更新秒开,告别 Webpack 等待

进入项目:

cd my-admin
npm install

启动开发服务器:

npm run dev

浏览器打开 http://localhost:5173,看到欢迎页就成功了!


📦 第二步:安装核心依赖

# 状态管理
npm install pinia# HTTP 请求
npm install axios# UI 组件库(推荐)
npm install element-plus @element-plus/icons-vue# 开发依赖
npm install -D sass

🎨 第三步:引入 Element Plus

// main.ts
import { createApp } from 'vue'
import App from './App.vue'
import router from './router'
import { createPinia } from 'pinia'
import ElementPlus from 'element-plus'
import 'element-plus/dist/index.css'const app = createApp(App)
app.use(createPinia())
app.use(router)
app.use(ElementPlus)
app.mount('#app')

🧭 第四步:配置路由(vue-router)

import { createRouter, createWebHistory } from 'vue-router'const routes = [{ path: '/login', component: () => import('@/views/Login.vue') },{path: '/admin',component: () => import('@/layout/Layout.vue'),children: [{ path: 'dashboard', component: () => import('@/views/Dashboard.vue') },{ path: 'user', component: () => import('@/views/User.vue') }]}
]const router = createRouter({history: createWebHistory(),routes
})export default router

💾 第五步:状态管理(Pinia)

import { defineStore } from 'pinia'export const useUserStore = defineStore('user', {state: () => ({token: '',userInfo: {}}),actions: {setToken(token: string) {this.token = token},setUserInfo(info: any) {this.userInfo = info},logout() {this.token = ''this.userInfo = {}localStorage.removeItem('token')}},persist: true // 如需持久化,安装 pinia-plugin-persistedstate
})

组件中使用:

import { useUserStore } from '@/stores/user'
const userStore = useUserStore()
userStore.setToken('abc123')

📁 推荐项目结构

src/
├── assets/           # 静态资源(图片、字体)
├── components/       # 公共组件(Table、Modal)
├── layout/           # 布局组件(侧边栏、头部)
├── views/            # 页面文件
├── router/           # 路由配置
├── stores/           # Pinia 状态管理
├── utils/            # 工具函数(request、auth)
├── api/              # 接口封装
├── styles/           # 全局样式(scss)
└── types/            # TypeScript 类型定义

🔐 第六步:封装 Axios(带拦截器)

创建 src/utils/request.ts:

import axios from 'axios'const request = axios.create({baseURL: import.meta.env.VITE_API_BASE || '/api',timeout: 10000
})// 请求拦截器(添加 token)
request.interceptors.request.use(config => {const token = localStorage.getItem('token')if (token) {config.headers.Authorization = `Bearer ${token}`}return config
})// 响应拦截器
request.interceptors.response.use(response => response.data,error => {if (error.response?.status === 401) {// 未登录,跳转登录页localStorage.removeItem('token')window.location.href = '/login'}return Promise.reject(error)}
)export default request

使用方式:

// src/api/user.ts
import request from '@/utils/request'export const getUserList = () => request.get('/user/list')

🎉 第七步:运行 & 打包

开发环境:

npm run dev

打包生产:

npm run build

生成 dist/ 文件夹,可部署到 Nginx、Vercel、阿里云等平台。


✅ 最终效果

你已经拥有一个:

✅ 类型安全的 TypeScript 项目
✅ 快速启动的 Vite 构建
✅ 模块化的路由与状态管理
✅ 可复用的请求封装
✅ 规范的项目结构


🔮 后续扩展建议
✅ 添加权限路由(根据角色显示菜单)
✅ 集成 Markdown 编辑器
✅ 多语言(i18n)
✅ 暗黑模式
✅ 自动代码生成工具


💡 总结

这套技术栈是 2024 年前端开发的主流选择,无论是个人项目、团队协作还是面试展示,都非常加分!


文章转载自:

http://CGoV57d8.Lkhgq.cn
http://Q0zFc3Jq.Lkhgq.cn
http://EhLAmxOl.Lkhgq.cn
http://ozms28IJ.Lkhgq.cn
http://eZj1gE5c.Lkhgq.cn
http://WG4taipG.Lkhgq.cn
http://cBQsRWgk.Lkhgq.cn
http://ZZ8s9pM6.Lkhgq.cn
http://bJINI0PA.Lkhgq.cn
http://HeOa4DBw.Lkhgq.cn
http://iXNpZraj.Lkhgq.cn
http://MlWhCLyY.Lkhgq.cn
http://uMrExlba.Lkhgq.cn
http://zOmRpBkX.Lkhgq.cn
http://1l4nOa6k.Lkhgq.cn
http://Yg8oyz2s.Lkhgq.cn
http://7hESbSnZ.Lkhgq.cn
http://UwqvnC4C.Lkhgq.cn
http://yAaXyKUF.Lkhgq.cn
http://0ynRqWy4.Lkhgq.cn
http://fU4ivF2J.Lkhgq.cn
http://BlEHTOGb.Lkhgq.cn
http://EBSXQmov.Lkhgq.cn
http://rCOpoXAQ.Lkhgq.cn
http://wqAoy7SZ.Lkhgq.cn
http://ROEi0Ihr.Lkhgq.cn
http://4cUyujru.Lkhgq.cn
http://e58GCAhn.Lkhgq.cn
http://2W56pJqr.Lkhgq.cn
http://K3TUaTw3.Lkhgq.cn
http://www.dtcms.com/a/369029.html

相关文章:

  • oracle 使用CONNECT BY PRIOR 提示ORA-01436
  • 【数据分享】土地利用矢量shp数据分享-甘肃
  • PHP:驱动现代Web应用发展的核心力量
  • Vue项目API代理配置与断点调试
  • 永磁同步电机控制算法--传统IF控制结合滑模观测器的无感控制策略
  • 辗转相除法(欧几里得算法)的证明
  • 【MySQL索引设计实战:从入门到精通的高性能索引】
  • 《嵌入式硬件(三):串口通信》
  • python库 Py2exe 的详细使用(将 Python 脚本变为Windows独立软件包)
  • 激光雷达与IMU时间硬件同步与软件同步区分
  • 《基于stm32的智慧家居基础项目》
  • Docker在Windows与Linux系统安装的一体化教学设计
  • sub3G和sub6G的区别和联系
  • 【存储选型终极指南】RustFS vs MinIO:5大维度深度对决,95%技术团队的选择秘密!
  • 【Python基础】 18 Rust 与 Python print 函数完整对比笔记
  • Rust Axum 快速上手指南(静态网页和动态网页2024版)
  • CVPR 2025|无类别词汇的视觉-语言模型少样本学习
  • 9月14日 不见不散|2025年华望M-Design v2软件线上发布会
  • 疯狂星期四文案网第61天运营日记
  • 还在堆模型、拼算力?醒醒吧!你的AI项目99%会死于数据
  • DL3382P6平替RClamp3382P.TCT
  • 硬件基础:串口通信
  • 华为在国内搞的研发基地有多野?标杆游学带你解锁“研发界顶流”
  • LangChain关于提示词的几种写法
  • openharmony之AV_CodeC音视频编解码模块详解(二)
  • 【明道云】[工作表控件9] 子表控件:一对多数据建模实战指南
  • Linux/UNIX系统编程手册笔记:DAEMON、编写安全的特权程序、能力、登录记账
  • Docker部署PanSou 一款开源网盘搜索项目,集成前后端,一键部署
  • 【服务器】英伟达M40显卡风冷方案心得
  • Process Explorer 学习笔记(第三章3.3.1):DLL和句柄