vue3中onMounted和onActivated运行的问题?

vue3中第一次打开不是只运行onMounted,等切换时才运行onActivted吗?
为什么第一次打开这两个都运行了?
是因为这个页面是另一个页面的子组件的原因吗?

onMounted(async ()=>{
  console.log('onMounted-TopGroup')
  await defaultDate()
  await getCount()
})
onActivated(async()=>{
  console.log("onActivated-TopGroup")
  await getCount()
})

image.png

阅读 9.3k
2 个回答

文档已经说了
image.png

activated 在组件挂载时也会调用,并且 deactivated 在组件卸载时也会调用。

这两个钩子不仅适用于 <KeepAlive> 缓存的根组件,也适用于缓存树中的后代组件。

你要是想第一次加载不执行这个,可以新增一个字段,onMounted 之后再改变这个字段的值,然后在 activated 中根据这个字段判断是否要执行你的方法

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏