vue3監聽route(解決vue3切換頁面,會調用上個頁面的watch)

vue-router提供了兩個方法onBeforeRouteUpdate,onBeforeRouteLeave,分別用兩個方法實現vue3監聽route
1.onBeforeRouteUpdate

onBeforeRouteUpdate(async (to, from) => {
  //僅當 id 更改時才獲取用戶,例如僅 query 或 hash 值已更改
    console.log(to.query)
    data.searchInfo = {...data.searchInfo, ...to.query};
    getList()
 })
onMounted(()=>{
    getList()
})

2.onBeforeRouteLeave

onBeforeRouteLeave((to, from) => {
  destroyWatch()
})
const destroyWatch = watch(() => route.query, (newValue, oldValue) => {
  console.log('destroyWatch')
    data.searchInfo = {...data.searchInfo, ...newValue};
    data.timeArr = [Number(data.searchInfo.start_time)*1000,Number(data.searchInfo.end_time)*1000]
    getList()
}, {immediate: true, deep: true})
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容