vue.js - 当路由器:id 参数更改时 Nuxt 刷新路由器视图
问题描述
我的 Nuxt 应用程序加载了一个链接,它是路线上的子视图http://127.0.0.1/user/:id
。我将用户的 API 调用放在mounted
路由器视图的挂钩中。
如果路由id
改变,mounted 不再触发,因为子视图已经加载。我最终得到了解决方案 - 观察 $route.params.id 并将 API 调用从 mount 移动到这个观察者。
watch: {
$route() {
this.getRows()
}
}
有一个更好的方法吗?
解决方案
解决方案 1
route
当为定义 a 的更改:key
时强制重新加载<nuxt-child>
,如下所示:
<nuxt-child :key="$route.fullPath"></nuxt-child>
解决方案 2
将 API 调用加载watch
到id
来自 URL 的用户而不是mounted
,您可以immediate: true
在第一次加载时使用它来调用它。
export default {
data() {
return {
user: null
}
},
asyncData({ params }) {
return {
id: params.id
}
},
watch: {
id: {
immediate: true,
handler(id) {
//Call the API to get the user using the id
}
}
}
}
推荐阅读
- python - 如何从循环中更新函数中的变量?
- paypal - Paypal // Wix // Quickbooks
- apache - Apache authtype Basic 无法在 50 台主机中的 1 台上运行
- python - Python - 循环中的多个 txt 文件的 Googletrans
- css - Angular 构建无法解析被覆盖的 Kendo 变量
- python - 哪个是matlab中python中bytearray()的等效函数?
- sql-server - 将 SQL 表脚手架到 MVC 模型后出现空引用错误
- c# - 从 .NET Core 3.1 Web Api 中的共享网络驱动器下载 PDF 文件
- c# - MultiDataTrigger 与多个 ComboBoxes WPF
- c++ - 如何从 2 个不同的文件访问结构数组?