Vue实现a标签点击打开新页面但不触发路由跳转的效果

概要

对于一个a标签,原生效果有点击直接当前页跳转路由,按键(windows为ctrl,ios为command)+ 点击打开路由的新页面这两种效果

注意,第一种效果是a标签自带的,第二种效果是浏览器的行为。

如图为普通a标签和部分属性,点击跳转新路由/newapi,当然同时也会触发newUrl函数

 现在需要阻止a标签原生的点击事件,实现点击触发函数,但当前页面不跳转路由,但是要保留按键+点击打开新页面的效果

实现

 实现方式很简单,

1. Vue有自带的.prevent机制,可以直接绑定到click上即可实现

2. 用原生的js,获取dom,然后将其click事件直接preventDefault。(Vue中避免未渲染,放在nextTick里)

代码:

 nextTick(() => {
    let dom = document.getElementById('apiA')
    dom.onclick = e => {
      console.log(e);
      
      e.preventDefault();
    }
  })

 

posted @   honoka_Gu  阅读(803)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
点击右上角即可分享
微信分享提示