vue+element刷新當前路由


如何做到每次點擊相同的路由地址都去渲染頁面?

需求是后台管理系統的菜單導航,點擊同一個菜單需要刷新頁面,跟之前做多頁面應用要達到一樣的效果,

以下是網上找到的方法(我的vue版本是2.5,vue-router 3.0)

1.加時間戳

    reloadRouter(path) {
      this.$router.push({
        path,
        query: {
          t: +new Date()
        }
      });
    } 

此方法無效

2.

    this.$router.go(0);

此方法有效,但是整個頁面都刷新了,

最后的解決辦法是創建一個空的組件,redirect.vue,

每次點擊跳轉到redirect空白頁,並且以params或者query把當前點擊的路由地址傳過去,(params傳值配置路由時需要name屬性)

redirect頁面渲染完成在取到路由帶過來的地址在進行跳轉,在空白頁面的停留時間非常短暫,這點不需要擔心。

完成!

這里還需提醒一下

當你點擊菜單的時候判斷一下是不是相同的路由地址,是的話跳轉到redirect,否則正常跳轉

<template>
</template>
<script>
export default {
  name: 'ZRedirect',
  created() {
    const path = this.$router.currentRoute.params;
    this.$router.push(path);
  }
};
</script>
    reloadRouter(path) {
      this.$router.push({
        name: 'redirect',
        params: {
          path: path
        }
      });

      this.$router.push({
        path: 'redirect',
        query: {
          path: path
        }
      });
    }

 


免責聲明!

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



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