javascript - Vue中如何用子路由组件替换父 View

标签 javascript vue.js vue-component vue-router

我有一个 Vue 路由设置,包含以下父路由和子路由:

{
    path: '/dashboard', component: dashboard,
    children: [
        {
            path:'report', component: report
        }
    ]
},

在父组件中,我有一些卡片菜单可以导航到子组件,还有一个路由器 View :

<template>
    <div class="container mt-5">
        <div class="row mt-0 h-100">
            <!-- menu item-->
            <div class="col-lg-4 col-md-4 col-sm-4 col-xs-12 my-auto" id="report-card">
                <router-link to="/dashboard/report" class="card2">
                    <div class="d-flex flex-column justify-content-center">
                        <div class="card-icon p-3">
                            <img :src="icons[0]"/>
                        </div>
                        <h3>Make a Report</h3>
                        <p class="small">Make a report of a crime or suspicious activities</p>
                    </div>
                </router-link>
            </div>
        </div>
        <router-view></router-view>
    </div>
</template>

当我点击路由器链接时,它确实呈现子组件,但在父 View 中。

有没有一种方法可以用子路由完全替换父 View ,而不是渲染或附加到父 View ?

最佳答案

我不确定这是否是正确的方法,但您可以将 v-if 与 this.$route.name 一起使用来检查路由器名称并渲染您想要渲染的内容。

例如你的路由器会是这样的:

{
    path: '/dashboard', 
    name: "Dashboard",
    component: dashboard,
    children: [
        {
            path:'report',
            name: "Report",  
            component: report
        }
    ]
},

你可以像这样简单地检查你是否在父路由上:

<template>
<div>
 <div v-if="this.$route.name === 'Dashboard' ">
    <!-- your homepage component -->
  </div>
  <router-view></router-view>
</div>
</template>

关于javascript - Vue中如何用子路由组件替换父 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64558462/

相关文章:

javascript - 没有webView的Android中的Kotlin调用Javascript函数

javascript - vue.js 如何在 for 循环中调用函数并传递当前项?

javascript - Vue 路由器嵌套路由与父级一起渲染

javascript - vue js 可以将带有查询的路由转到组件吗?

javascript - 使用 angular-snap 和 snapjs 禁用所有抽屉

javascript - MediaWiki 扩展中加载 js 不起作用

javascript - 如何从该数组 Vue JS 显示 HTML

vue.js - 表格的动态高度(vuetify)

vue.js - 看。如何在创建的元素中获取 "key"属性的值

javascript - 如何使用javascript获取字符串的一部分?