为什么我的vue嵌套组件代码中父组件渲染了两次?
在看vue的嵌套组件,试着写了一下,渲染效果是这个样子,父组件的router-link部分渲染了两个,不明白是为什么?求解答。
代码如下
// 父组件 src/components/Super.vue
<template>
<div style="margin-left: 300px;">
<router-link :to="{name: 'a'}" exact><button type="button">点击显示组件A</button></router-link>
<router-link :to="{name: 'b'}" exact><button type="button">点击显示组件B</button></router-link>
<router-view></router-view>
</div>
</template>
<script>
export default {
name: 'Super'
}
</script>
<style>
</style>
// src/components/A.vue
<template>
<h1>This is A</h1>
</template>
<script>
export default {
name: "A"
}
</script>
<style>
</style>
<template>
<h1>This is B</h1>
</template>
<script>
export default {
name: "B"
}
</script>
<style>
</style>
// src/router/index.js
import Vue from 'vue';
import Router from 'vue-router';
Vue.use(Router);
export default new Router({
// 设置激活状态下的样式名
linkActiveClass: 'active',
// mode: "history",
routes: [
{
path: '/super/',
name: 'super',
component: () => import("../components/Super.vue"),
children: [
{
path: 'a/',
name: 'a',
component: () => import("../components/A.vue")
},
{
path: 'b/',
name: 'b',
component: () => import("../components/B.vue")
}
]
}
]
});
// src/App.vue
<template>
<div id="app">
<Super></Super>
</div>
</template>
<script>
import Super from './components/Super.vue'
export default {
name: 'App',
components: {
Super
}
}
</script>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
你的Super组件都在路由中声明了,再在App中引入,不是成了自己嵌套自己?
路由的嵌套就是router-link的嵌套,把App改成