vue-router history模式,如果是完整链接,跳转时如何做到不刷新页面?

history模式时,尝试用a标签和router-link来渲染

<!-- 跳转正常 -->
<router-link to='/search'></router-link>

<!-- 跳转时刷新了页面 -->
<a href='http://m.xxx.com/search'></a>

<!-- 跳转错误,会变成http://m.xxx.com/http://m.xxx.com/search -->
<router-link to='http://m.xxx.com/search'></router-link>

为什么有这样的需求?因为运维加广告链接不会只加/search,而且广告和app共用,必须加全链接

倒是可以过滤path前面的东西,用router-link跳转path,如:

http://m.xxx.com/search 过滤成 /search

除了上述方法,如何才能做到全链接跳转时不刷新页面?

阅读 5.7k
2 个回答

可以试试beforeRouteLeave钩子,在回调中把链接重定向。

还是做个判断 当链接中包含http时,取出pathname,用 location.pathname

全链接会认为这已经不是一个单页应用了,所以得刷新页面。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题