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})
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容