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

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

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

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

完.....

ios

問題背景:

點擊用戶頭像 => 進入用戶我的中心,在用戶我的中內心點擊其餘用戶的頭像,我但願顯示被點擊用戶的我的中心,但只看到了路由參數在發生變化,頁面內容並無更新。如圖:
vue-router

頁面代碼以下:axios

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

解決辦法:

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

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

相關文章
相關標籤/搜索