router-link+tag+a路由失败

本文探讨了在使用Vue.js的router-link组件时遇到的一个特殊场景:当router-link的tag属性被设置为li,并且内部包含了一个a标签时,点击li标签无法触发路由跳转。文章详细解释了这一现象的原因,并给出了实际的渲染效果。

router-link失效场景

<router-link to="/home/xxxxxx/" tag="li">
	<a href="javascript:">点我</a>
</router-link>

这种情况下点击li标签区域,不会路由,URL地址也没有改变。反而点击<a>标签能正确路由。

原因

router-link通过tag改变渲染后的标签,同时里面包裹了一个<a>标签的情况。会将里面的<a>作为真实的链接,其href属性是真正的路由地址。
实际渲染的效果:

<li>
	<a href="#/home/xxxxxx/">点我</a>
</li>

参考文档

`Unknown html tag router-link` 错误通常意味着开发环境未能识别 `router-link` 标签,这可能是由于 Vue Router 未正确安装或配置导致。以下是解决该问题的常见方法: ### 1. 确保 Vue Router 已安装 如果你使用的是 Vue 项目,需要确保 Vue Router 已经安装。可以通过以下命令安装: ```bash npm install vue-router # 或者使用 yarn yarn add vue-router ``` ### 2. 正确配置 Vue Router 在项目中正确配置 Vue Router。以下是一个基本的配置示例: ```javascript // main.js 或入口文件 import Vue from 'vue'; import VueRouter from 'vue-router'; import App from './App.vue'; // 安装 Vue Router 插件 Vue.use(VueRouter); // 定义路由 const routes = [ { path: '/', component: Home }, // 其他路由配置 ]; // 创建路由实例 const router = new VueRouter({ routes }); // 创建 Vue 实例并挂载路由 new Vue({ router, render: h => h(App) }).$mount('#app'); ``` ### 3. 检查组件中是否正确使用 确保在组件中正确使用 `router-link` 标签。示例如下: ```vue <template> <div> <router-link to="/">Home</router-link> <router-link to="/about">About</router-link> </div> </template> <script> export default { name: 'MyComponent' }; </script> ``` ### 4. 检查语法和拼写 确保 `router-link` 标签的语法和拼写正确。正确的基本用法为: ```vue <router-link to="path" tag="button" replace active-class="active"></router-link> ``` ### 5. 检查 IDE 配置 有时候 IDE 可能无法正确识别 `router-link` 标签。可以尝试重启 IDE 或者安装相关的 Vue 插件来解决。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值