如何上手vue vuex vue-rouert后台的权限路由
发表于:2025-11-13 作者:千家信息网编辑
千家信息网最后更新 2025年11月13日,这篇文章给大家介绍如何上手vue vuex vue-rouert后台的权限路由,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。项目地址: vue-simple-template共三
千家信息网最后更新 2025年11月13日如何上手vue vuex vue-rouert后台的权限路由
这篇文章给大家介绍如何上手vue vuex vue-rouert后台的权限路由,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
项目地址: vue-simple-template
共三个角色:adan barbara carrie 密码全是:123456
adan 拥有 最高权限A 他可以看到 red , yellow 和 blue 页面(共三个页面)
barbara 拥有 权限B 他可以看到 red 和 yellow 页面
carrie 拥有 权限C 他可以看到 red 和 blue 页面
技术栈
webpack ---- 打包神器vue ---- JavaScript 框架vuex ---- 实现不同组件间的状态共享vue-router ---- 页面路由babel-polyfill ---- 将ES6代码转为ES5代码normalize.css ---- 重置掉该重置的样式element-ui ---- UI组件库
项目初始化
# cd 到项目文件夹cd weven-simple-template# 安装依赖 (本项目还安装了其他依赖详情 请见 package.json 文件)npm install# 运行项目npm run dev
项目结构
vue-cil 脚手架初始化项目后,我只修改过src文件夹
src├── App.vue ---- 页面入口├── api ---- api请求│ └── login.js ---- 模拟json对象数据├── assets ---- 主题 字体等静态资源│ └── logo.png├── components ---- 组件│ ├── index.vue│ └── login.vue ├── main.js ---- 初始化组件 加载路由├── router ---- 路由│ └── index.js└── store ---- vuex状态管理 ├── getters.js ├── index.js └── modules └── login.js
重点:
动态路由的关键在于router配置的 meta字段 和vuex的 状态共存 (不懂可以先查看官方文档)
router/index.js
// 初始化路由export default new Router({ routes: [ { path: '/login', name: 'Login', component: Login } ] });// 动态路由 meta 定义了roleexport const powerRouter =[ { path: '/',redirect:'/red', name: 'index',component: Index,hidden:false, children: [ { path: '/red', name: 'red', component: red,}, { path: '/yellow', name: 'yellow', component: yellow, meta: {role: 'B'}}, { path: '/blue', name: 'blue', component: blue, meta: {role: 'C'}} ] }];store/modules/lo
Logins({ commit }, info){ return new Promise((resolve, reject) => { let data={}; loginByUserInfo.map(function (item) { //获取所以用户信息 if(info.username === item.username || info.pew === item.pew){ commit('SET_USERNAME',item.username); //将username和role进行存储 sessionStorage.setItem('USERNAME', item.username); //存入 session commit('SET_ROLE',item.role); sessionStorage.setItem('ROLE', item.role); return data={username:item.username,introduce:item.introduce}; }else{ return data; } }); resolve(data); }).catch(error => { reject(error); }); }, Roles({ commit }, newrouter){ return new Promise((resolve, reject) => { commit('SET_NEWROUER',newrouter); //存储最新路由 resolve(newrouter); }).catch(error => { reject(error); }); },gin.js actions部分
Logins({ commit }, info){ return new Promise((resolve, reject) => { let data={}; loginByUserInfo.map(function (item) { //获取所以用户信息 if(info.username === item.username || info.pew === item.pew){ commit('SET_USERNAME',item.username); //将username和role进行存储 sessionStorage.setItem('USERNAME', item.username); //存入 session commit('SET_ROLE',item.role); sessionStorage.setItem('ROLE', item.role); return data={username:item.username,introduce:item.introduce}; }else{ return data; } }); resolve(data); }).catch(error => { reject(error); }); }, Roles({ commit }, newrouter){ return new Promise((resolve, reject) => { commit('SET_NEWROUER',newrouter); //存储最新路由 resolve(newrouter); }).catch(error => { reject(error); }); },main.js
router.beforeEach((to, from, next) => { if(store.getters.role){ //判断role 是否存在 if(store.getters.newrouter.length !== 0){ next() //resolve 钩子 }else{ let newrouter if (store.getters.role == 'A') { //判断权限 newrouter = powerRouter } else { let newchildren = powerRouter[0].children.filter(route => { if(route.meta){ if(route.meta.role == store.getters.role){ return true } return false }else{ return true } }); newrouter = powerRouter newrouter[0].children = newchildren } router.addRoutes(newrouter) //添加动态路由 store.dispatch('Roles',newrouter).then(res => { next({ ...to }) }).catch(() => { }) } }else{ if (['/login'].indexOf(to.path) !== -1) { next() } else { next('/login') } }})components/index.vue
// mapGetters 辅助函数仅仅是将 store 中的 getter 映射到局部计算属性...mapGetters([ 'newrouter' ])
关于如何上手vue vuex vue-rouert后台的权限路由就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
路由
项目
权限
页面
组件
存储
动态
文件
状态
后台
三个
代码
信息
内容
文件夹
更多
用户
帮助
不同
不错
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
如何访问自己新买服务器
成高成网络技术
网络安全生产进社区
软件开发过程不诚信
url服务器打不开
江苏一站式软件开发教程
无线网受信任的服务器
我的世界服务器怎么制作公会
百度云显示服务器异常
成绩在线查询数据库基本操作
成都高新区网络安全峰会
东华的数据库用的什么数据库
网络安全工程师看啥书
pubchem数据库
广州芒果互联网科技
镇江企业网络安全准入控制哪家好
公司网络服务器辐射几米外会减弱
重庆系统软件开发费用
公安机关的网络安全与执法
云游互联网科技有限公司
怎么进入我的世界最火的服务器
内网网关与服务器的地址相同
花式爆破是什么意思网络安全
运用了通信网络技术的行业
php遍历数据库
服务器数据口和管理口
企业网络安全实验
渠县今生网络技术服务经营部
定位器与服务器连接失败
数据库 保存数组