vue.js < router-view>不能再直接在室内使用< transition>

jhdbpxl9  于 2023-10-23  发布在  Vue.js
关注(0)|答案(1)|浏览(164)

这是我的代码:

<template>
  <main>
    <component :is="$route.meta.layout || 'div'">
      <Transition appear>
        <RouterView />
      </Transition>
    </component>
  </main>
</template>

我得到了这样的警告:

Use slot props instead:

<router-view v-slot="{ Component }">
  <transition>
    <component :is="Component" />
  </transition>
</router-view>

我怎样才能在不丢失布局的情况下解决这个问题?

holgip5t

holgip5t1#

你有没有试过更换你的过渡期:

<template>
  <main>
    <component :is="$route.meta.layout || 'div'">
      <router-view v-slot="{ Component }">
        <transition appear>
          <component :is="Component" />
        </transition>
      </router-view>
    </component>
  </main>
</template>

我觉得挺好的。
编辑
你可以尝试 Package 你的元素:
Layout.vue

<template>
  <transition appear>
    <div :is="$route.meta.layout || 'div'">
      <slot />
    </div>
  </transition>
</template>

App.vue

<template>
  <Layout>
    <router-view v-slot="{ Component }">
      <component :is="Component" />
    </router-view>
  </Layout>
</template>

即使我担心它会破坏你的布局。

相关问题