在 Vue3中,封装一个 router-links ,支持内外链接都能跳转!

本文介绍如何在Vue3中封装一个名为AppLink的组件,该组件能够处理内部和外部链接的跳转,提供与Router Link类似的接口。通过计算属性判断链接类型,实现更灵活的用法,如新窗口打开外部链接,并分享了作者的面试题及感悟。
摘要由CSDN通过智能技术生成

<router-link> 标签是用于在Vue应用程序的不同页面之间跳转,但它不是跳转到外部链接,相反,我们一般使用 <a> 标签。

也许只有我这么认为,但很多时候,我无法跟上这种差异。其他时候,链接可能是动态的,即来自数据库或用户提供的某个数据源。在这种情况下,你根本不知道链接是外部的还是内部的,在每个可能使用链接的地方手动做一个v-if是多么痛苦。

如果只用一个组件来处理所有内部和外部的链接,那不是很好吗?

幸运的是,扩展<router-link>组件非常简单,只需将它包装到我们自己的定制组件中。Ok,我们需要构建一个AppLink组件来处理链接,无论是外部的还是内部的。

AppLink组件

AppLink组件的 props 要包含 router-link 的所有 props。为什么? 因为这样我们组件的“接口”就可以模仿 Router Link 的接口,无需再记住另一个API。 我们可以通过从Vue Router导入 RouterLink 并将其 props 解构到我们的组件中,如下所示:

// AppLink.vue

template 中,创建 router-link 并将 props 传递给它,我们还需要传入slot ,这个可以在 router-link

  • 24
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值