this.$router.go的实现原理
时间: 2023-10-15 16:23:57 浏览: 287
this.$router.go的实现原理是通过改变浏览器的历史记录来实现路由跳转。当调用this.$router.go(n)时,n表示要向前或向后跳转的步数。如果n为正数,则向前跳转n步;如果n为负数,则向后跳转n步。具体实现原理如下:
1. 当调用this.$router.go(n)时,Vue Router会检查当前路由的历史记录长度。
2. 如果n大于0并且小于或等于历史记录长度,则通过window.history.go(n)来执行向前跳转n步。
3. 如果n小于0并且的绝对值小于或等于历史记录长度,则通过window.history.go(n)来执行向后跳转n步。
4. 如果n超过历史记录长度,则通过window.location.reload()来刷新页面,达到跳转到指定页面的效果。
总之,this.$router.go的实现原理是通过改变浏览器的历史记录来实现路由跳转。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *3* [vue this.$router.push 页面不刷新总结(8种解决方式----覆盖所有场景)](https://blog.csdn.net/qq_38143787/article/details/120920610)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
- *2* [vue 刷新当前页面,使用this.$router.go(0)闪白问题(使用provide / inject)](https://blog.csdn.net/a460550542/article/details/125102866)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
阅读全文