当前位置:首页 > VUE

vue管理系统项目实现

2026-01-22 19:42:39VUE

Vue 管理系统项目实现指南

技术选型与基础搭建

Vue 3 + TypeScript + Vite 作为基础开发环境,搭配 Vue Router 和 Pinia 实现路由与状态管理。Element Plus 或 Ant Design Vue 提供 UI 组件库支持。

安装基础依赖:

npm create vite@latest admin-system --template vue-ts
cd admin-system
npm install vue-router pinia element-plus axios

项目结构设计

典型目录结构示例:

src/
├── api/                # 接口封装
├── assets/             # 静态资源
├── components/         # 公共组件
├── router/             # 路由配置
├── stores/             # Pinia状态管理
├── styles/             # 全局样式
├── utils/              # 工具函数
├── views/              # 页面组件
├── App.vue
└── main.ts

核心功能实现

路由配置示例(router/index.ts):

import { createRouter, createWebHistory } from 'vue-router'

const routes = [
  {
    path: '/',
    component: () => import('@/views/Layout.vue'),
    children: [
      { path: '', component: () => import('@/views/Home.vue') },
      { path: 'user', component: () => import('@/views/User.vue') }
    ]
  },
  { path: '/login', component: () => import('@/views/Login.vue') }
]

const router = createRouter({
  history: createWebHistory(),
  routes
})

状态管理示例(stores/user.ts):

import { defineStore } from 'pinia'

export const useUserStore = defineStore('user', {
  state: () => ({
    token: localStorage.getItem('token') || '',
    userInfo: null
  }),
  actions: {
    async login(params: LoginParams) {
      const res = await api.login(params)
      this.token = res.token
      localStorage.setItem('token', res.token)
    }
  }
})

权限控制方案

实现路由守卫(router/index.ts):

router.beforeEach((to, from, next) => {
  const store = useUserStore()
  if (to.path !== '/login' && !store.token) {
    next('/login')
  } else {
    next()
  }
})

动态路由加载可通过后端返回权限菜单,前端递归生成路由配置。

API 封装示例

统一请求拦截(utils/request.ts):

import axios from 'axios'

const service = axios.create({
  baseURL: import.meta.env.VITE_API_URL,
  timeout: 5000
})

service.interceptors.request.use(config => {
  const store = useUserStore()
  if (store.token) {
    config.headers.Authorization = `Bearer ${store.token}`
  }
  return config
})

典型页面组件

用户管理页面示例(views/User.vue):

<template>
  <el-table :data="tableData">
    <el-table-column prop="name" label="姓名" />
    <el-table-column prop="role" label="角色" />
  </el-table>
  <el-pagination 
    :current-page="pagination.page"
    @current-change="handlePageChange"
  />
</template>

<script setup lang="ts">
import { ref, onMounted } from 'vue'
import { getUserList } from '@/api/user'

const tableData = ref([])
const pagination = ref({ page: 1, size: 10 })

const fetchData = async () => {
  const res = await getUserList(pagination.value)
  tableData.value = res.data
}

onMounted(fetchData)
</script>

构建优化

vite.config.ts 生产环境配置:

import { defineConfig } from 'vite'

export default defineConfig({
  build: {
    chunkSizeWarningLimit: 2000,
    rollupOptions: {
      output: {
        manualChunks: {
          'element-plus': ['element-plus']
        }
      }
    }
  }
})

部署方案

推荐使用 Docker 容器化部署,示例 Dockerfile:

vue管理系统项目实现

FROM node:16 as build
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
RUN npm run build

FROM nginx:alpine
COPY --from=build /app/dist /usr/share/nginx/html
EXPOSE 80

分享给朋友:

相关文章

react项目如何

react项目如何

创建React项目 使用create-react-app工具快速初始化项目。确保已安装Node.js(建议版本≥12.0.0),运行以下命令生成新项目: npx create-react-app m…

前端vue项目实现https

前端vue项目实现https

实现Vue项目的HTTPS配置 在Vue项目中启用HTTPS可以通过多种方式实现,具体取决于开发环境和部署方式。以下是常见的几种方法: 开发环境配置HTTPS 在本地开发时,可以通过Vue CLI或…

vue实现文件管理系统

vue实现文件管理系统

Vue 文件管理系统实现方案 核心功能模块设计 文件展示组件:使用树形结构展示目录层级,配合递归组件实现无限嵌套 上传下载功能:通过axios与后端API交互,支持拖拽上传和分片上传 权限控制系统:基…

vue项目实现注册登录

vue项目实现注册登录

Vue 项目实现注册登录功能 注册登录功能是 Web 应用的基础功能,Vue 项目可以通过以下步骤实现。 项目结构 确保项目结构清晰,通常包含以下关键文件: src/views/Login.vue…

vue vant实现的项目

vue vant实现的项目

Vue Vant 项目实现指南 Vant 是一个基于 Vue.js 的移动端组件库,适合快速构建高质量的移动端应用。以下是如何使用 Vue 和 Vant 实现一个项目的关键步骤。 初始化 Vue 项…

vue项目实现自适应

vue项目实现自适应

实现Vue项目自适应的方案 使用CSS媒体查询 在Vue组件或全局CSS中定义不同屏幕尺寸下的样式规则。通过@media实现响应式布局,适配不同设备宽度。 /* 示例:移动端优先的媒体查询 */ .…