首页 > 其他分享 >关于vue3 路由离开前 更新pinia 导致页面watch被触发 解决方法

关于vue3 路由离开前 更新pinia 导致页面watch被触发 解决方法

时间:2025-01-17 11:48:10浏览次数:1  
标签:watch .... pinia vue3 data 路由

背景: 在vue中,使用watch监听pinia中的数据是否变化来调用api

watch(() => {
  return [
    pinia.data,
    ]
}, (newV, oldV) => {
    axios.get('a.b', params).then((response) => {
     ....
    .... }); }, { immediate: true })

在监听pinia data的时候,如果在切换路由的时候更新了pinia 中的数据的时候会导致watch被调用,并重新调用接口,导致退出了当前页面但接口重新调用了一边,

解决方法是,如果已经开始了路由跳转,取消watch监听

const unwatch = watch(() => {
  return [
    pinia.data,
    ]
}, (newV, oldV) => {
    axios.get('a.b', params).then((response) => {
     ....
    ....
    });
}, {
  immediate: true
})

onBeforeRouteLeave(() => {    unwatch () })
 

https://vuejs.org/guide/essentials/watchers.html vue3关于watch介绍

标签:watch,....,pinia,vue3,data,路由
From: https://www.cnblogs.com/HePandeFeng/p/18676595

相关文章

  • 【论文阅读】GROOT:Learning to Follow Instructions by Watching Gameplay Viedos
    GROOT:LearningtoFollowInstructionsbyWatchingGameplayViedos.作者为北京大学梁一韬所在的TeamCraftJarvis,发表时间为2023Background在开放世界下开发类人级别的具身智能体以解决开放式任务一直是人工智能领域长期以来追求的目标。随着ChatGPT的流行,近年来涌现了一批......
  • webpack5 从零搭建 vue3 项目
    目前vue3官网推荐的工具链已经是vite了,就算是要使用webpack甚至是webpack5,也可以直接使用vue-cli。然而之所以写这个,可以当是webpack5的一个学习文章。同时也是因为之前有个项目是在vue3刚出来的时候使用vue-cli(那是官网还是推荐使用webpack,以及但是得版本为webp......
  • Vue3在线聊天室
    更多开源项目请关注我的gitee:乌鸦像写字台(关注公众号:寻川的AI工具库免费得毕设必备软件以及详细项目运行文档)(he-haoran-hhh)-Gitee.com在Layout.vue中添加菜单选项<el-menu-itemindex="/home">首页</el-menu-item><el-menu-itemindex="/im">天农聊天室</el-menu-item......
  • 使用QFuture和QFutureWatcher实现不阻塞界面的Async函数
    简述很多时候,在Qt里面需要运行一个耗时函数的时候,为了避免阻塞界面,需要放入非主线程去执行。实现这样处理的方法有好几种,例如:写一个继承自QThread类,实现run接口;写一个继承自QObject的类,添加槽函数执行任务,创建对象,移入一个QThread中进行调用;写一个QRunnable的子类,创建对象,添......
  • 基SpringBoot+Vue3的游乐园管理系统
    文章目录详细视频演示项目介绍技术介绍功能介绍核心代码系统效果图详细视频演示文章底部名片,获取项目的完整演示视频,免费解答技术疑问项目介绍  游乐园作为娱乐休闲的重要场所,其管理效率和服务质量直接影响到游客的满意度和游乐园的声誉。传统的游乐园管理方式......
  • vue3 实现标签拖拽排序 + curd
    ......
  • vue3.0 keep-alive 缓存指定页面
    vue3.0keep-alive缓存指定页面**vue2.0和vue3.0keep-alive写法是有区别,不要太过于依赖AI**!!!!vue2的写法(不适用于vue3)<keep-alive><router-viewv-if="$route.meta.keepAlive"></router-view></keep-alive><router-viewv-if="!$route.met......
  • vue3路由跳转页面不回顶部问题
    因为vue-router的跳转默认是保持原先的滚动位置,并不会自动回滚到顶部,所以需要在createRouter的时候配置一下。不废话~constrouter=createRouter({//history:createWebHistory(),history:createWebHashHistory(),routes,scrollBehavior(to,from,savedPosition......
  • vue3+ts展示条项字段
     展示条项组件:<el-formv-if="currentStep===4"label-position="left"label-width="120px"style="display:flex;flex-wrap:wrap;justify-content:flex-start;margin-left:138px;"><el-rowv-for="(row,r......
  • 项目开发实践——基于SpringBoot+Vue3实现的在线考试系统(六)
    文章目录一、考试管理模块实现1、添加考试功能实现1.1页面设计1.2前端功能实现1.3后端功能实现1.4效果展示2、考试管理功能实现2.1页面设计2.2前端功能实现2.3后端功能实现2.3.1后端查询接口实现2.3.2后端编辑接口实现2.3.3后端删除接......