如何实现vue的某个子组件下父级的router-link跳转
时间: 2024-12-23 13:21:07 浏览: 5
在Vue中,如果你想要在子组件内部通过`router-link`跳转到父组件外部的路由,通常做法是在父组件传递一个函数给子组件作为props,然后在子组件中触发这个函数并传入目标路由信息。这样做的步骤如下:
1. **设置父组件**:
```html
<template>
<div>
<child-component :navigate="handleRouteClick"></child-component>
</div>
</template>
<script>
export default {
components: { ChildComponent },
methods: {
handleRouteClick(to) {
this.$router.push(to);
}
}
};
</script>
```
2. **在子组件中接收并调用函数**:
```html
<template>
<router-link @click="parentNavigate('your-desired-route')">点击这里</router-link>
</template>
<script>
export default {
props: ['navigate'],
method: {
parentNavigate(route) {
this.navigate({ name: route }); // 如果路由是按名称匹配,提供route名
// 或者
this.navigate({ path: route }); // 如果路由是按路径匹配,提供完整路径
}
}
};
</script>
```
当你在子组件内的`router-link`上点击时,它会调用`parentNavigate`函数,并将目标路由信息传给父组件的`handleRouteClick`方法,最终完成路由跳转。
阅读全文