热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

addRoutes爬坑記

addRoutes簡介用動態路由完成權限掌握,是一個很nice的計劃不是么?初始路由只要登錄頁,依據用戶的id查詢對應的權限,然後addRoutes,將獲取到的菜單數據放入vuex
addRoutes簡介

用動態路由完成權限掌握,是一個很nice的計劃不是么? 初始路由只要登錄頁,依據用戶的id查詢對應的權限,然後addRoutes,將獲取到的菜單數據放入vuex和瀏覽器緩存中。

動態增加更多的路由劃定規矩。參數必需是一個相符 routes 選項請求的
數組

完成計劃

這裏的routers實在就是代表未來寄存菜單權限的js,即vuex中一個state

// 初始路由文件
import Vue from 'vue'
import Router from 'vue-router'
import routers from './router'
Vue.use(Router)
const index = () => import('@/views/index/index')
export default new Router({
routes: [
{ path: '/', component: index },
...routers
]
})

addRoutes 要領運用

let router = [
{
path: '*', component: (resolve) => require(['@/views/addRoutes/404.vue'], resolve), name: '404', description: '這是addRoutes出來的404頁面'
},
{
path: '/foo', component: (resolve) => require(['@/views/addRoutes/foo.vue'], resolve), name: 'foo', description: '這是addRoutes出來的foo頁面'
}
]
// addRoutes
this.$router.addRoutes(router)

如許就完成了動態路由的增加,你能夠試着在addRoutes後用this.$router.push({path: '你的路由地點'})去接見你新增加的路由元。

然則如許並沒有完畢,由於你把404頁面襯着在了前面, 如許會致使在某些情況下你的foo路由會被襯着為404頁面,由於路由先找到404頁面。所以我們需要把404放在最下面。

let router = [
{
path: '/foo', component: (resolve) => require(['@/views/addRoutes/foo.vue'], resolve), name: 'foo', description: '這是addRoutes出來的foo頁面'
},
{
path: '*', component: (resolve) => require(['@/views/addRoutes/404.vue'], resolve), name: '404', description: '這是addRoutes出來的404頁面'
}
]

這個時刻就到了找bug的時刻了,我們發如今革新瀏覽器以後,我們動態增加的路由劃定規矩居然不見了,不要慌,這個時刻就輪到vuex上台了,也就是最最先提到的將獲取到的菜單數據放入vuex和瀏覽器緩存中。

處理計劃: 將瀏覽器緩存中的菜單數據與vuex綁定起來,將vuex的數據與router實例綁定起來,固然,你也能夠直接將瀏覽器緩存與router實例綁定起來,然則不發起這麼做,畢竟瀏覽器緩存不是你能夠掌握的。如許就處理了革新后喪失的bug了。

源碼地點

別的放上新搭建的博客地點:http://blacklisten.cn


推荐阅读
  • 本文详细介绍了在 Vue.js 前端框架中集成 vue-i18n 插件以实现多语言支持的方法。通过具体的配置步骤和示例代码,帮助开发者快速掌握如何在项目中实现国际化功能,提升用户体验。同时,文章还探讨了常见的多语言切换问题及解决方案,为开发人员提供了实用的参考。 ... [详细]
  • 小编给大家分享一下Vue3中如何提高开发效率,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获, ... [详细]
  • vue引入echarts地图的四种方式
    一、vue中引入echart1、安装echarts:npminstallecharts--save2、在main.js文件中引入echarts实例:  Vue.prototype.$echartsecharts3、在需要用到echart图形的vue文件中引入:   importechartsfrom"echarts";4、如果用到map(地图),还 ... [详细]
  • 在 Vue 应用开发中,页面状态管理和跨页面数据传递是常见需求。本文将详细介绍 Vue Router 提供的两种有效方式,帮助开发者高效地实现页面间的数据交互与状态同步,同时分享一些最佳实践和注意事项。 ... [详细]
  • Vue应用预渲染技术详解与实践 ... [详细]
  • 在深入研究 React 项目的过程中,特别是在探索 react-router 源码时,我发现了其中蕴含的中间件概念。这激发了我对中间件的进一步思考与整理。本文将详细探讨 Redux 中间件的原理及其在实际项目中的应用,帮助读者更好地理解和使用这一强大工具。通过具体示例和代码解析,我们将揭示中间件如何提升应用的状态管理和异步操作处理能力。 ... [详细]
  • 本文介绍了.hbs文件作为Ember.js项目中的视图层,类似于HTML文件的功能,并详细讲解了如何在Ember.js应用中集成Bootstrap框架及其相关组件的方法。 ... [详细]
  • Web动态服务器Python基本实现
    Web动态服务器Python基本实现 ... [详细]
  • 本文探讨了如何通过Service Locator模式来简化和优化在B/S架构中的服务命名访问,特别是对于需要频繁访问的服务,如JNDI和XMLNS。该模式通过缓存机制减少了重复查找的成本,并提供了对多种服务的统一访问接口。 ... [详细]
  • 本文详细介绍了如何在 Vue CLI 3.0 和 2.0 中配置 proxy 来解决开发环境下的跨域问题,包括具体的配置项和使用场景。 ... [详细]
  • 本打算教一步步实现koa-router,因为要解释的太多了,所以先简化成mini版本,从实现部分功能到阅读源码,希望能让你好理解一些。希望你之前有读过koa源码,没有的话,给你链接 ... [详细]
  • 基于 Vue 和 Element UI 实现的简洁登录界面设计
    本文介绍了一种利用 Vue.js 和 Element UI 框架构建的简洁登录界面设计。该设计不仅注重用户体验,还确保了界面的美观性和易用性。通过合理的布局和组件配置,实现了高效、响应式的登录功能,适用于多种前端应用场景。 ... [详细]
  • 如何使用ES6语法编写Webpack配置文件? ... [详细]
  • Maven + Spring + MyBatis + MySQL 环境搭建与实例解析
    本文详细介绍如何使用MySQL数据库进行环境搭建,包括创建数据库表并插入示例数据。随后,逐步指导如何配置Maven项目,整合Spring框架与MyBatis,实现高效的数据访问。 ... [详细]
  • 在GitHub上克隆vue-element-admin项目时遇到依赖安装错误
    在 GitHub 上克隆 vue-element-admin 项目后,使用 `npm install` 安装依赖时遇到了未知的 Git 错误。具体错误信息为 `npm ERR! code 128`,提示命令执行失败。这可能是由于网络问题、Git 配置不正确或某些依赖包的仓库地址无效导致的。建议检查网络连接、更新 Git 版本并确保所有依赖项的 URL 正确无误。 ... [详细]
author-avatar
J_ai糖
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有