Vue Admin Template 使用教程

Vue Admin Template 使用教程

vue-admin-templateVue 轻量级后台管理系统基础模板项目地址:https://gitcode.com/gh_mirrors/vue/vue-admin-template

1. 项目的目录结构及介绍

vue-admin-template/
├── public/                  # 静态资源文件夹
│   ├── favicon.ico          # 网站图标
│   └── index.html           # 主页面模板
├── src/                     # 源代码文件夹
│   ├── assets/              # 项目资源文件(如图片、样式等)
│   ├── components/          # 公共组件
│   ├── layouts/             # 布局组件
│   ├── router/              # 路由配置
│   ├── store/               # Vuex 状态管理
│   ├── styles/              # 全局样式
│   ├── utils/               # 工具函数
│   ├── views/               # 页面组件
│   ├── App.vue              # 根组件
│   ├── main.js              # 入口文件
│   └── permission.js        # 权限控制
├── .env                     # 环境变量配置
├── .env.development         # 开发环境变量配置
├── .env.production          # 生产环境变量配置
├── .eslintrc.js             # ESLint 配置
├── .gitignore               # Git 忽略文件配置
├── babel.config.js          # Babel 配置
├── package.json             # 项目依赖和脚本
├── README.md                # 项目说明文档
└── vue.config.js            # Vue CLI 配置

2. 项目的启动文件介绍

main.js

main.js 是项目的入口文件,负责初始化 Vue 实例并挂载到 DOM 中。以下是 main.js 的主要内容:

import Vue from 'vue'
import App from './App.vue'
import router from './router'
import store from './store'
import './permission'

Vue.config.productionTip = false

new Vue({
  router,
  store,
  render: h => h(App)
}).$mount('#app')

permission.js

permission.js 负责权限控制,主要用于路由守卫和权限验证。以下是 permission.js 的主要内容:

import router from './router'
import store from './store'
import { getToken } from '@/utils/auth'

const whiteList = ['/login', '/auth-redirect']

router.beforeEach(async(to, from, next) => {
  const hasToken = getToken()

  if (hasToken) {
    if (to.path === '/login') {
      next({ path: '/' })
    } else {
      const hasRoles = store.getters.roles && store.getters.roles.length > 0
      if (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')
          next(`/login?redirect=${to.path}`)
        }
      }
    }
  } else {
    if (whiteList.indexOf(to.path) !== -1) {
      next()
    } else {
      next(`/login?redirect=${to.path}`)
    }
  }
})

3. 项目的配置文件介绍

vue.config.js

vue.config.js 是 Vue CLI 的配置文件,用于自定义构建配置。以下是 vue.config.js 的主要内容:

module.exports = {
  publicPath: '/',
  outputDir: 'dist',
  assetsDir: 'static',
  lintOnSave: process.env.NODE_ENV === 'development',
  productionSourceMap: false,
  devServer: {
    port: 9528,
    open: true,
    overlay: {
      warnings: false,
      errors: true
    }
  },
  configureWebpack: {
    resolve: {
      alias: {
        '@': resolve('src')
      }
    }
  }
}

.env

.env 文件用于定义全局环境变

vue-admin-templateVue 轻量级后台管理系统基础模板项目地址:https://gitcode.com/gh_mirrors/vue/vue-admin-template

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

董灵辛Dennis

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值