鍍金池/ 問答/HTML/ vue + elementUi 導航組件,在進入子路由時怎樣保持導航的激活狀態(tài)

vue + elementUi 導航組件,在進入子路由時怎樣保持導航的激活狀態(tài)

如果我想實現(xiàn)從url跳到添加頁時 媒體列表導航激活,該怎么操作???效果如圖
圖片描述

相關(guān)代碼如下,現(xiàn)在可以實現(xiàn)導航中顯示的列表頁面從url中進入時激活,
圖片描述

回答
編輯回答
遺莣

這個有兩種做法
1.自己維護一個 菜單與 uri的 映射關(guān)系,例如 /user/list=[/user/list,/user/add,/user/edit] ,然后再路由變化的時候, 跟據(jù)這個映射關(guān)系,決定應該高亮哪個菜單。
2.添加頁面不要跳轉(zhuǎn)新的uri ,把添加的頁面封裝成一個組件,然后用dialog 顯示出來。這樣就不存在你說的那種問題。(我就是這么做的)。

2017年1月3日 10:53
編輯回答
悶騷型

首先你需要一個watch隨時改變路由名稱

watch: {
  '$route'(to, from) {
    this.menu = to.name // data中放置一個default-active的綁定數(shù)據(jù)
  }
}

如果發(fā)現(xiàn)不生效,可能需要使用命名路由的一些小特效

完整的參考

<script>
  export default {
    name: "TopMenu",
    data() {
      return {
        // 為了能夠根據(jù)路由自動選中
        menu: this.$route.name ? this.$route.name : "XXX",
        menus: [
          {
            name: "AASS",
            index: "X3"
          },
          {
            name: "AAA",
            index: "X2"
          },
          {
            name: "XXX",
            index: "X1"
          }
        ]
      }
    },
    methods: {
      handleSelect(key, keyPath) {
        this.$router.push({name: key, params: {activityId: "0"}})
      }
    },
    watch: {
      '$route'(to, from) {
        this.menu = to.name
      }
    }
  }
</script>
2017年9月6日 05:13