vue.js - Vue单页应用路由器,当我们改变路由时,组件会发生什么?
问题描述
假设我有一个名为 FirstPage 的组件,这是我的默认路由,现在 FirstPage 触发异步调用,借助 vuex 存储的操作,每分钟向后端 Api 进行一次调用(它在组件加载时触发作为一条路线),现在假设我转到了一条转到 About 组件的 about 路线,FirstPage 是否仍在进行调用?
编辑:
我还没有开发一个应用程序,所以我不能提供例子。
了解路由器在这些情况下的行为符合我的兴趣,因为每当我更改路由时,我都希望停止进行持续调用(因为它们不是必需的)。
原因是,根据这一点,我必须为我想到的项目切换工具。
解决方案
通常,当您离开它时,组件的实例将被销毁。但是,这有两个例外..
1)当您使用带参数的路线时。来自Vue 路由器文档
使用带参数的路由时要注意的一件事是,当用户从
/user/foo
to导航时/user/bar
,将重用相同的组件实例。由于两条路由都渲染相同的组件,因此这比销毁旧实例然后创建新实例更有效。但是,这也意味着组件的生命周期钩子不会被调用。
2)当您将router-view
组件包装在keep-alive
元素中时。由于<router-view>本质上是一个动态组件。
一般来说,当组件实例被销毁时,Vue 可以很好地进行内务管理和清理工作。但有时您必须进行一些手动清理,特别是如果您使用某种外部库。这通常在实例生命周期beforeDestroy
的钩子中处理。
推荐阅读
- javascript - 用其他类型的变量类型声明一个变量
- python - OPENCV我如何将两个不同方向的稍微相似的图像映射到彼此上
- java - 如何找到 siteArea IBM WCM 的所有元素
- bash - 如何在 bash 脚本中创建列表并附加值
- asp.net - System.InvalidOperationException:ExecuteReader:CommandText 属性尚未初始化源错误:
- python - 如何一次从 ExecuteScript 处理器接收 2 个 csv 流文件,以及如何使用 python 在 NIFI 中使用主键合并到一个 csv
- python - 完全禁止 ROS 记录日志文件?
- python - 如何根据条件在 Django 字段中呈现选择
- javascript - 如何在 JavaScript 和 TypeScript 中导入/导出?
- c# - 如何使用 C# 追加现有的 excel 文件