随着 Vue 的使用范围越来越广,不使用 <a> 标签的程序员越来越多,各种链接都是 <div> <span> 加事件绑定一把梭,还见过用 <button> 的异端。鼠标中键和 Ctrl+鼠标左键完全被废弃。
做为用户,有啥浏览器插件能让链接点击后在新标签页打开。如图所示

|  |      1shintendo      2022-03-17 10:06:53 +08:00 这跟 Vue 有什么关系 | 
|  |      2sgiyy      2022-03-17 10:14:33 +08:00 跟前端框架没关系。 实际中有时也会这么做,比如在新标签页打开或跳转前,需要发起请求或进行校验后才可以执行。 正常不需要校验或发起请求啥的,确实应该用正常的 a 标签。 | 
|      3C603H6r18Q1mSP9N      2022-03-17 10:18:27 +08:00 a 标签 target=_blank 可以,直接硬写。 click 里面 window.open(url) 也可 | 
|      4lalalaqwer      2022-03-17 10:20:57 +08:00 用户的话应该没办法搞这个事了,毕竟是路由跳转都是在 js 代码里面写的 | 
|  |      5Axnir      2022-03-17 10:23:13 +08:00 via iPhone 跟 Vue 没关系,就是写代码的程序员写的不规范 | 
|  |      6libook      2022-03-17 10:24:18 +08:00 https://developer.mozilla.org/zh-CN/docs/Web/API/Window/open 能用 a tag 的时候尽量用 a tag ,需要拦截事件做前置准备的话就监听事件。 你也可以监听 ctrl 键是否被按住,如果同时触发点击操作使用 window.open 打开新页面,否则就 window.location.href 在当前页面跳转。这个你可以用封装成组件在各个地方复用。 建议去 MDN 上刷一遍 Web API 的文档,能给你提供很多解决问题的思路。 | 
|  |      7hicdn OP | 
|  |      9shintendo      2022-03-17 10:56:24 +08:00 @hicdn  大兄弟,前后端都要校验的,后端校验是为了安全和正确性,前端校验是为了体验,用户不会希望表单填完提交上去跳到结果页被告知填的格式不对,javascript 诞生第一天的最初目的就是做这个 | 
|  |      10sgiyy      2022-03-17 11:06:19 +08:00  2 | 
|  |      11learnshare      2022-03-17 11:08:53 +08:00 学一下 Web 基础课吧 <a href="URL" target="_blank">LINK</a> window.open(URL) | 
|  |      12ccyu220      2022-03-17 11:13:58 +08:00 现在的前端不会切图就算了,连基础都不会了吗。 | 
|  |      13Vegetable      2022-03-17 11:16:48 +08:00 不要把你的错误认知放大到其他人行吗? window.open("https://v2ex.com","_blank") | 
|  |      14Vegetable      2022-03-17 11:23:57 +08:00 单页面开发的网站,有时候没办法实现新标签页打开的功能。设计上没有考虑这一点,比如将某些状态保存在了内存中,直接打开 url 是无法还原状态的。和 vue 没什么关系,和开发者的认知有关系 | 
|  |      16devwolf      2022-03-17 11:38:58 +08:00 这问题的内容,确实很诡异…… | 
|  |      17konakona      2022-03-17 11:41:18 +08:00 不用 a 标签是为了阻止事件冒泡。 但这种明显只是为了 a 而 a 的标签乱用着实难受…… 新开窗口直接<a href="" target="_blank"></a> 事件新开窗口 <div onClick=""></div> function __ (){ window.open('url',"_blank")} | 
|  |      18learnshare      2022-03-17 11:41:24 +08:00 | 
|  |      19devwolf      2022-03-17 11:47:23 +08:00 #16 @devwolf 有歧义,只是想吐槽一下"op 的这例提问"本身让我个人觉得诡异。 op 可以去 mdn 看一下超链接相关的知识,属于 html 范畴: https://developer.mozilla.org/zh-CN/docs/Web/HTML/Element/a 以及 window.open: https://developer.mozilla.org/zh-CN/docs/Web/API/Window/open 还有 window.location.href: https://developer.mozilla.org/zh-CN/docs/Web/API/Window/location |