【vue】——使用watch 觀察路由變化,重新獲取內容


更新:11-29
時隔半年,又重新使用VUE進行開發,有了新方案——beforeRouteLeave

在組件內直接使用,前提是你用了vue-router:

  beforeRouteLeave (to, from, next) {
    // 導航離開該組件的對應路由時調用
    // 可以訪問組件實例 `this`
  }

完.....

問題背景:

點擊用戶頭像 => 進入用戶個人中心,在用戶個人中心里點擊其他用戶的頭像,我希望顯示被點擊用戶的個人中心,但只看到了路由參數在發生變化,頁面內容並沒有更新。如圖:

頁面代碼如下:

<script>
    export default {
        data() {
            return {
                data: {}
            }
        },
        methods: {
          fetchDate() {
          // 使用 axios獲取數據
          ......
        },
        created() {
          this.fetchDate();
        }
    }
</script>

解決辦法:

使用 watch,觀察路由,一旦發生變化便重新獲取數據!

<script>
    export default {
        data() {
            return {
                data: {}
            }
        },
        methods: {
          fetchDate() {
          // 使用 axios獲取數據
          ......
        },
        created() {
          // 組件創建完后獲取數據,
    	  // 此時 data 已經被 observed 了
          this.fetchDate();
        },
        watch: {
          // 如果路由有變化,會再次執行該方法
          "$route": "fetchDate"
        }
    }
</script>


免責聲明!

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



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