router-link跳转的问题

最近使用router-link遇到了一个棘手的问题 之前都是在to后面直接写/aaaa/bbbb这种路径 也就是说是自己配置好的路由路径 但是如果是www开头的网址或者是这种https://mp.weixin.qq.com/s/g9...
这个该怎么弄呢 我把这个链接放到to后面 点击没有反应

阅读 11.4k
4 个回答

router-link实现的都是锚点,如果要实现外链,只有a,要不然会在你的生成的链接地址前会加一个#号。

把router-link改为a

给a上加一个点击事件,给这个点击函数里加上跳转URL参数和类型,按照不同的类型,打开页面就行。比如:

原本:

<router-link v-for="item in [mark]" :key="bannerList[item].id" :to="bannerList[item].to" :target="bannerList[item].target">
    <img :src="bannerList[item].img">
</router-link>

改为:

<a v-for="item in [mark]" :key="bannerList[item].id" @click="goPage(bannerList[item].bannerType, bannerList[item].to, bannerList[item].target)">
    <img :src="bannerList[item].img">
</a>
goPage (type, to, target) {
    if (type === ''){// 内部路由跳转
        this.$router.push(to);
    } else {
        window.open(to, target);
    }
}

to后面写的是path或者name,直接写个网址可能不行,如果一定要跳转网址,那尽力别用这个router-link了,可以用a

可以自己写个组件封装 router-link 判断是全 url 则用 a 标签替换。

推荐问题