搭建Vue3 Admin Plus 框架

2024-08-24 12:28

本文主要是介绍搭建Vue3 Admin Plus 框架,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Vue3 Admin Plus 是一个基于 Vue 3 和 Vite 的后台管理模板,通常包含了 Element Plus 作为 UI 库,并且集成了常见的管理系统功能,如权限管理、菜单配置、国际化等。以下是如何从头搭建 Vue3 Admin Plus 项目的步骤。

目录

1. 克隆 Vue3 Admin Plus 项目模板

2. 安装依赖

3. 运行开发服务器

4. 项目结构概览

5. 项目功能配置

a. 路由配置

b. 权限管理

c. 国际化支持

d. Element Plus UI 库

6. 打包和部署

7. 环境变量配置

8. 项目扩展

9. 总结


1. 克隆 Vue3 Admin Plus 项目模板

首先,您可以通过以下方式从 GitHub 上克隆 Vue3 Admin Plus 项目模板:

git clone https://github.com/jzfai/vue3-admin-plus.git

进入项目目录:

cd vue3-admin-plus

2. 安装依赖

在项目目录下运行以下命令来安装依赖项:

npm install

或使用 Yarn:

yarn install

3. 运行开发服务器

安装完依赖后,运行开发服务器以启动项目:

npm run dev

或使用 Yarn:

yarn dev

这个命令将启动本地开发服务器,您可以通过 http://localhost:3000 访问。

4. 项目结构概览

项目的目录结构大致如下:

vue3-admin-plus/
├── public/                         # 公共静态资源
├── src/                            # 源代码目录
│   ├── api/                        # API 接口定义
│   ├── assets/                     # 静态资源
│   ├── components/                 # 公共组件
│   ├── layout/                     # 布局相关文件
│   ├── router/                     # 路由配置
│   ├── store/                      # 状态管理(Pinia 或 Vuex)
│   ├── views/                      # 页面组件
│   ├── App.vue                     # 根组件
│   ├── main.js                     # 入口文件
│   ├── permission.js               # 权限控制
│   └── settings.js                 # 项目设置
├── .env.development                # 开发环境变量
├── .env.production                 # 生产环境变量
├── vite.config.js                  # Vite 配置文件
├── package.json                    # 项目依赖配置文件
└── README.md                       # 项目说明文件

5. 项目功能配置

a. 路由配置

路由文件位于 src/router 目录下,包含了项目的路由配置。可以根据需要添加、修改或删除路由。

import { createRouter, createWebHistory } from 'vue-router'
import Layout from '@/layout/index.vue'const routes = [{path: '/',component: Layout,redirect: '/dashboard',children: [{path: 'dashboard',name: 'Dashboard',component: () => import('@/views/dashboard/index.vue'),meta: { title: 'Dashboard', icon: 'dashboard' }}]},// 其他路由配置...
]const router = createRouter({history: createWebHistory(),routes
})export default router
b. 权限管理

权限管理的核心是通过 src/permission.js 文件来控制访问。通过在路由的 meta 属性中定义 roles 来指定哪些角色可以访问特定路由。

import router from './router'
import store from './store'
import { ElMessage } from 'element-plus'
import NProgress from 'nprogress'
import 'nprogress/nprogress.css'router.beforeEach(async (to, from, next) => {const hasToken = store.getters.tokenif (hasToken) {if (to.path === '/login') {next({ path: '/' })} else {const hasRoles = store.getters.roles && store.getters.roles.length > 0if (hasRoles) {next()} else {try {const { roles } = await store.dispatch('user/getInfo')const accessRoutes = await store.dispatch('permission/generateRoutes', roles)router.addRoutes(accessRoutes)next({ ...to, replace: true })} catch (error) {await store.dispatch('user/resetToken')ElMessage.error(error || 'Has Error')next(`/login?redirect=${to.path}`)}}}} else {if (['/login', '/auth-redirect'].indexOf(to.path) !== -1) {next()} else {next(`/login?redirect=${to.path}`)}}
})
c. 国际化支持

项目通常集成了国际化插件,可以通过 src/locales 目录进行多语言配置。你可以根据需求添加新的语言包。

import { createI18n } from 'vue-i18n'
import en from './en'
import zh from './zh'const messages = {en,zh
}const i18n = createI18n({locale: 'en',messages
})export default i18n

main.js 中注册:

import { createApp } from 'vue'
import i18n from './locales'
import App from './App.vue'const app = createApp(App)
app.use(i18n)
app.mount('#app')
d. Element Plus UI 库

Vue3 Admin Plus 使用 Element Plus 作为 UI 组件库,通常在 main.js 中进行全局引入:

import ElementPlus from 'element-plus'
import 'element-plus/dist/index.css'const app = createApp(App)
app.use(ElementPlus)

6. 打包和部署

开发完成后,可以通过以下命令来打包项目:

npm run build

或使用 Yarn:

yarn build

打包后会生成 dist 文件夹,其中包含了所有的静态资源文件。将这些文件上传到服务器即可部署。

7. 环境变量配置

项目使用 .env 文件进行环境变量配置。你可以在 env.developmentenv.production 中添加或修改环境变量。

# .env.development
VITE_APP_BASE_API = '/dev-api'# .env.production
VITE_APP_BASE_API = '/prod-api'

在代码中使用 import.meta.env.VITE_APP_BASE_API 访问这些变量。

8. 项目扩展

你可以根据业务需求进一步扩展项目,例如:

  • 集成更多第三方库:如图表库 (ECharts)、富文本编辑器 (Quill) 等。
  • 优化权限管理:根据实际需要完善权限验证机制。
  • 添加更多国际化支持:根据用户需求增加新的语言包。

9. 总结

Vue3 Admin Plus 提供了一个现代化的 Vue 3 后台管理模板,具备完善的功能和优秀的性能。通过上述步骤,您可以快速搭建并部署一个功能强大的后台管理系统。如果需要更多定制化功能,您可以进一步扩展和配置该框架。

这篇关于搭建Vue3 Admin Plus 框架的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1102477

相关文章

CSS3中的字体及相关属性详解

《CSS3中的字体及相关属性详解》:本文主要介绍了CSS3中的字体及相关属性,详细内容请阅读本文,希望能对你有所帮助... 字体网页字体的三个来源:用户机器上安装的字体,放心使用。保存在第三方网站上的字体,例如Typekit和Google,可以link标签链接到你的页面上。保存在你自己Web服务器上的字

MyBatis Plus 中 update_time 字段自动填充失效的原因分析及解决方案(最新整理)

《MyBatisPlus中update_time字段自动填充失效的原因分析及解决方案(最新整理)》在使用MyBatisPlus时,通常我们会在数据库表中设置create_time和update... 目录前言一、问题现象二、原因分析三、总结:常见原因与解决方法对照表四、推荐写法前言在使用 MyBATis

Mybatis Plus Join使用方法示例详解

《MybatisPlusJoin使用方法示例详解》:本文主要介绍MybatisPlusJoin使用方法示例详解,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,... 目录1、pom文件2、yaml配置文件3、分页插件4、示例代码:5、测试代码6、和PageHelper结合6

html 滚动条滚动过快会留下边框线的解决方案

《html滚动条滚动过快会留下边框线的解决方案》:本文主要介绍了html滚动条滚动过快会留下边框线的解决方案,解决方法很简单,详细内容请阅读本文,希望能对你有所帮助... 滚动条滚动过快时,会留下边框线但其实大部分时候是这样的,没有多出边框线的滚动条滚动过快时留下边框线的问题通常与滚动条样式和滚动行

如何搭建并配置HTTPD文件服务及访问权限控制

《如何搭建并配置HTTPD文件服务及访问权限控制》:本文主要介绍如何搭建并配置HTTPD文件服务及访问权限控制的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、安装HTTPD服务二、HTTPD服务目录结构三、配置修改四、服务启动五、基于用户访问权限控制六、

pytest+allure环境搭建+自动化实践过程

《pytest+allure环境搭建+自动化实践过程》:本文主要介绍pytest+allure环境搭建+自动化实践过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录一、pytest下载安装1.1、安装pytest1.2、检测是否安装成功二、allure下载安装2.

使用vscode搭建pywebview集成vue项目实践

《使用vscode搭建pywebview集成vue项目实践》:本文主要介绍使用vscode搭建pywebview集成vue项目实践,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录环境准备项目源码下载项目说明调试与生成可执行文件核心代码说明总结本节我们使用pythonpywebv

Mybatis Plus JSqlParser解析sql语句及JSqlParser安装步骤

《MybatisPlusJSqlParser解析sql语句及JSqlParser安装步骤》JSqlParser是一个用于解析SQL语句的Java库,它可以将SQL语句解析为一个Java对象树,允许... 目录【一】jsqlParser 是什么【二】JSqlParser 的安装步骤【三】使用场景【1】sql语

Windows Server 2025 搭建NPS-Radius服务器的步骤

《WindowsServer2025搭建NPS-Radius服务器的步骤》本文主要介绍了通过微软的NPS角色实现一个Radius服务器,身份验证和证书使用微软ADCS、ADDS,具有一定的参考价... 目录简介示意图什么是 802.1X?核心作用802.1X的组成角色工作流程简述802.1X常见应用802.

使用Python和Tkinter实现html标签去除工具

《使用Python和Tkinter实现html标签去除工具》本文介绍用Python和Tkinter开发的HTML标签去除工具,支持去除HTML标签、转义实体并输出纯文本,提供图形界面操作及复制功能,需... 目录html 标签去除工具功能介绍创作过程1. 技术选型2. 核心实现逻辑3. 用户体验增强如何运行