让我们假设有一个名为FirstPage的组件,这是我的默认路由,现在FirstPage在vuex存储的帮助下触发了对后端Api的每分钟一次异步调用(当组件作为路由加载),现在假设我转到了关于About组件的About路由,FirstPage是否仍在进行调用?
编辑:
我尚未使用该应用程序开发应用程序,因此无法提供示例。
了解路由器在这些情况下的行为符合我的兴趣,因为每当更改路由时,我都希望停止进行常量调用(因为它们是不必要的)。
原因是根据此,我必须为我想到的项目切换工具。
答案 0 :(得分:2)
通常,当您离开组件实例时,该组件的实例将被销毁。但是,..
有两个例外。1)使用带参数的路线时。从Vue Router docs
在使用带参数的路由时要注意的一件事是,当用户从
/user/foo
导航到/user/bar
时,将重用相同的组件实例。由于两个路由都呈现相同的组件,因此这比销毁旧实例然后创建新实例更有效。但是,这也意味着将不会调用组件的生命周期挂钩。
2)将router-view
组件包装在keep-alive
元素中时。由于the <router-view>本质上是dynamic component。
通常,在组件实例销毁后,Vue可以很好地完成内部管理和清理工作。但是有时您必须做一些manual cleanup,特别是如果您使用某种外部库。通常在instance's lifecycle的beforeDestroy
钩子中进行处理。
答案 1 :(得分:1)
在正常情况下,在创建时在所述组件内完成的任何逻辑/脚本/等都将在 on destroy/close 钩子上“清除”(不仅与 vue 相关,而且在许多其他工具中可见),如果有需要坚持一些东西,那么它应该在更高的范围内(或其他解决方案)
答案 2 :(得分:0)
为相应组件编写的任何脚本仅在组件在页面中呈现时运行。一旦您找到有关替换先前组件的组件,则先前的脚本将无法运行。
答案 3 :(得分:0)
您可以制作一个带有路由器视图的父组件,并在您始终希望加载的页面中进行加载,因此您的FirstPage组件,但是该组件后面应该只有逻辑,而没有html,因为否则您将始终看到呈现。路由器查看您要显示实际html和内容的页面。我希望您能明白,否则我可以为您做个例子。祝好运。