我在这个请求中看到:
添加一个
router.reload()
使用当前路径重新加载并再次调用数据挂钩
但当我尝试从Vue组件发出以下命令时:
此。$router.reload()
我得到这个错误:
未捕获类型错误:此.$router.reload不是一个函数
我搜索了文档,但没有找到任何相关的内容。vue/vue路由器是否提供类似的功能
我感兴趣的软件版本有:
”;vue“是:&引用^2.1.0“;,
&引用;vue路由器“&引用^第2.0.3节;,
另外,我知道location.reload()
是备选方案之一,但我正在寻找本机Vue选项
这个。$router.go()
就是这样做的;如果未指定参数,路由器将导航到当前位置,刷新页面
注意:路由器及其历史组件的当前实现没有将参数标记为可选的,但IMVHO它要么是一个bug,要么是Evan You的遗漏,因为规范明确允许它。我已经就此提交了一份问题报告。如果您真正关心当前的TS注释,只需使用等效的
this.$router.go(0)
至于“为什么会这样”:go
在内部将其参数传递给window.history.go
,因此它等同于windows.history.go()
——然后,根据MDN文档重新加载页面
注意:由于这执行了一个;“软”字;在普通桌面(非便携)Firefox上重新加载,如果您使用它,可能会出现一些奇怪的怪癖,但实际上您需要真正的重新加载;使用
窗口.location.reload(true)(https://developer.mozilla.org/en-US/docs/Web/API/Location/reload)OP提到的可能会有所帮助——它确实解决了我在FF上的问题