vue-vuex-vueRouter-axios-elementUi搭建的前端工程

本文详细介绍了基于Vue2的前端项目结构,包括路由设置、vuex模块化、axios请求封装以及路由全局守卫。在路由方面,讨论了动态路由和权限控制,通过addRoutes动态添加。对于vuex,展示了模块化组织方式,并提及了如何处理vuex的持久化问题,特别是token的存储。此外,还解决了ElementUI导航栏与vue-router的兼容性问题。
摘要由CSDN通过智能技术生成

采用vue2以及vue全家桶搭建的vue前端项目,代码路径

一、代码结构

  • api:主要用于书写项目中的接口
  • assets:主要存放一些静态的图片或者一些公共样式表
  • components:主要存放组件
  • directive:主要存放一些自定义指令
  • icons:主要存放图标(字体图标、svg等)
  • layout:布局,主要存放系统整体布局的vue文件
  • mixins:混入,主要放一些公共的混入内容(vue中参数、方法、监听等)
  • router:路由,主要是系统的页面路由
  • store:状态管理,vuex
  • utils:工具类
  • views:主要存放系统页面
  • main.js:程序入口
  • permission.js:主要写路由拦截(全局守卫)

二、路由设置

项目中的所有菜单需要做权限控制,所有菜单都是存库的,因此需要用到vue-router的动态路由,下图的children就是后面需要从接口中获取的

获取到路由后然后通过addRoutes去动态添加路由

 三、vuex的模块化书写

 index.js中的内容,将modules中的模块引入

列举一例,user.js中的书写如下:

四、axios请求的封装

 五、路由的全局守卫

 六、问题

1、vuex的持久化:系统内的token都是从vuex中获取,但是vuex有个问题就是,他是会话级别的存储,一刷新页面vuex就会清空,所有在这里需要将token进行一个初始化token: getToken(),getToken()方法其实就是utils中写的一个从cookies内拿token的方法,因此在一开始登录成功后就得将token值存储在cookies中

2、ElementUI导航栏中的vue-router在3.0版本以上重复点菜单会出现报错问题

 解决方案:在router的index.js文件中加入以下代码

const originalPush = VueRouter.prototype.push
VueRouter.prototype.push = function push(location) {
  return originalPush.call(this, location).catch(err => err)
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

生活的打工仔

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

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

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

打赏作者

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

抵扣说明:

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

余额充值