首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不显示"slot“组件

不显示"slot“组件
EN

Stack Overflow用户
提问于 2020-10-30 01:03:16
回答 1查看 46关注 0票数 0

我尝试用slot构建一个动态组件。为了做到这一点,我有这个layout

代码语言:javascript
复制
<template>
    <div class="container-fluid">
        <div class="row">
            LAYOUT NOT CONNECTED    
            <slot />
        </div>
    </div>
</template>

其中包含<slot>

我有这个组件login

代码语言:javascript
复制
<template>
    <div>bla bla</div>
</template>

我的应用是:

代码语言:javascript
复制
<template>
    <component :is="layout">
        <router-view />
    </component>
</template>
    
<script>
const default_layout = 'layout-not-connected'
    
export default {
    computed: {
        layout() {
            console.log(this.$route.meta.layout || default_layout)
            return (this.$route.meta.layout || default_layout)
        }
    },
...

在我的路线上是:

代码语言:javascript
复制
{
    path: '/login',
    name: 'Login',
    meta: { layout : 'layout-not-connected' },
    component: Login
},

结果是只显示LAYOUT NOT DISPLAYED,而不显示登录组件。

我的错误在哪里?

EN

回答 1

Stack Overflow用户

发布于 2020-10-30 02:29:28

解决方案1

尝试使用named-routes

代码语言:javascript
复制
<template>
    <component :is="layout">
        <router-view name="a" />
    </component>
</template>

而路由器实例:

代码语言:javascript
复制
const router = new VueRouter({
  routes: [
    {
      path: '/',
      components: {
        default: Foo,
        a: Bar,
      }
    }
  ]
})

解决方案2

保留实际的路由器视图,并确保在routes数组中具有匹配的路由对象

代码语言:javascript
复制
<template>
    <component :is="layout">
        <router-view />
    </component>
</template>

和路由器实例:

代码语言:javascript
复制
const router = new VueRouter({
  routes: [
    // dynamic segments start with a colon
    { path: '/user/:id', component: User }
  ]
})
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64595880

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档