前言:在后台管理系統中,有這樣一個需求點擊當前菜單欄時,頁面依舊可以刷新。
點擊當前路由實現數據請求頁面刷新
思路
點擊當前菜單欄時,因為要進行跳轉的路由和當前路由相同,所以router.push(當前路由)並不會執行。所以需要借由第三方組件來實現。
判斷是否點擊的當前路由,如果是則跳轉到空白的第三方組件,並傳遞當前路由。在空白組件中created的生命周期中接受參數,並執行頁面跳轉。此時頁面不會顯示任何內容就開始進行跳轉,所以速度的問題不用擔心。視覺上的效果就是點擊當前路由后,頁面刷新請求數據。實際路由已經跳轉了兩次。
Code
//點擊路由進行跳轉操作 jump(url) { //判斷是否是當前路由 if(url == this.$route.path) { this.$router.push({ path: 'redirect', query: rul }) } else { this.$router.push({ path: url }) } }
空白組件:
<template> <div></div> </template> <script> export default { data() { return { } }, created() { let url = this.$route.query; let str = ''; for(let i in url) { str += url[i]; } const path = this.$route.query; this.$router.push({ path: str, }); } } </script> <style> </style>
實現效果