vue實戰:路由監聽


一、場景:在頁面刷新后,仍然定位到之前菜單欄選中的按鈕,即之前的菜單欄按鈕仍為激活狀態,而非重新定位到第一個默認激活狀態的菜單欄按鈕。

二、1、在element-ui組件庫中,有一個名字為NavMenu導航菜單的組件,<el-menu>標簽上有一個屬性default-active,其值表明當前激活的菜單按鈕對應的組件路由,也可以去掉這個屬性,但刷新頁面后菜單欄激活的按鈕變為第一個,加上這個屬性后頁面刷新后仍然是之前的菜單按鈕為高亮狀態。

       2、菜單欄的按鈕很多,所以default-active的值不是靜態的,這里給一個js對象,邏輯里給這個對象動態賦值為當前組件的路由,即每次刷新頁面后默認激活的按鈕對應的仍是當前路由對應的組件。

       3、default-active=“activeMenu” // 名字可以隨便取

       4、data () { // 頁面的初始化數據
                 return {
                    activeMenu: '/home/index', // 值為首頁組件路由,這里是固定的,當路由發生變化時,要改變activeMenu的值為當前路由。
                }
            },

       5、watch: { // 路由監聽:監聽路由的變化,從而做出相應操作
                 $route: {
                     immediate: true, // 一旦監聽到路由的變化立即執行
                     handler(to,from) { // 回調函數,兩個參數,to:當前的組件,from:上一個組件
                        this.activeMenu = to.path // 給activeMenu重新賦值為當前組件的路由地址
                      }
               }
           }

三、路由基礎回顧:

1、route:它是一條路由,根據不同的地址展示不同的內容 

2、routes:它是一組路由

3、router:是一個機制,它來管理路由


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM