-
点击链接,切换路由,底层调用的是history的pushState和replaceState, 这两个方法修改url后,并不会被onhashchange和onpopstate监测到.
因此想绕开vue-router,在外面监控url的变化是不可能的, 只能通过路由守卫来实现. -
html4的history包含: go back forward
html5的history新增: pushState replaceState state, 采用这两个方法只能修改url,并不会触发页面刷新
比如在www.baidu.com后面添加后缀www.baidu.com/#/test, 并不会触发页面刷新
本质上是锚的概念 -
hash模式,可以用onhashchange监控到. history模式可以用onpopstate监控到.前提是页面发生了刷新.
-
vue-router虽然有hash和history模式, 但url的变化都是通过history的pushState和replaceState来改变的. 因此onhashchange和onpopstate都失效
网友评论