vue路由跳转外部链接
vue-router其实是将window.open方法重写了
所以你在里面使用:跳转的都是你当前url --------- 这就是单页面应用
<router-link>的to方法,
还是编程式导航this.$router.push
所以解决方法也很简单:
1、如果你的项目不复杂,能改到router渲染,又没有一、二级路由、路由权限、动态路由这些问题,可以修改为的方式,跳转
a标签
2、如果你的项目比较复杂了,,我下面贴一个代码参考,不会可以联系vx:zkhh6666
可以直接使用路由拦截的方式
/**
* @name 跳转外部链接
* @param {*} to 路由对象的to,需要有meta的url
* @returns 要啥returns
* @author zhukun
*/
export const SkipExteriorUrl = function (to) {
if (!to.meta.url) return
let reg = /\http/
if (reg.test(to.meta.url)) {
let token = //你的token
let newUrl = to.meta.url.slice(reg.exec(to.meta.url).index)//截取出现http后面的内容
let rulesReg = /\/$/ //如果最后不存在/就主动加上
if (rulesReg.test(newUrl)) {
newUrl = newUrl + '?accessToken=' + token
} else {
newUrl = newUrl + '/?accessToken=' + token
}
window.location.href = newUrl //核心用window.location.href暴力的跳
}
}