请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

正在回答 回答被采纳积分+3

6回答

慕瓜8308876 2022-01-06 23:37:36

这个问题我也碰到了 要使用 mode="out-in"  要确保template下只有一个根节点元素

https://img1.sycdn.imooc.com//szimg/61d70cb0093d087706000364.jpg

这样就可以正常使用了!

2 回复 有任何疑惑可以回复我~
  • 提问者 慕无忌2576682 #1
    你的截图是不是上错了😂
    回复 有任何疑惑可以回复我~ 2022-01-06 23:39:36
  • 慕瓜8308876 回复 提问者 慕无忌2576682 #2
    没有错,我之前个人中心页 template下有两个根元素 出现了和你一样的问题,个人中心页改为这样 只有一个根元素就可以了!
    回复 有任何疑惑可以回复我~ 2022-01-06 23:47:21
提问者 慕无忌2576682 2021-12-27 17:11:05

https://img1.sycdn.imooc.com//szimg/61c9830f0996195309030384.jpg
vue3官网更新了 不是这样的写法了,按照官网就可以实现了

1 回复 有任何疑惑可以回复我~
音乐流星 2024-10-16 17:27:12

为了万无一失, 不管你的子页面是不是单节点,都能成功。这样写: keep-alive 下面包一层div 并绑定key

<template>
    <div class="app-main">
        <router-view v-slot="{ Component }">
            <transition name="fade-transform" mode="out-in">
                <keep-alive>
                    <div :key="route.path">
                        <component :is="Component" />
                    </div>
                </keep-alive>
            </transition>
        </router-view>
    </div>
</template>


0 回复 有任何疑惑可以回复我~
liuying525 2022-10-27 17:54:36

就是个人中心外面包裹一层DIV就行了。

0 回复 有任何疑惑可以回复我~
慕田峪4533323 2022-02-24 15:37:54

<transition>只能用于单元素/组件之上  原因可能是组件没有根标签

0 回复 有任何疑惑可以回复我~
Sunday 2021-12-27 19:02:21

你好

首先这个问题并不是 router-view 消失了,准确来说,应该是《该路径下匹配到的组件并没有被成功渲染》,所针对这个问题,我建议你查看下对应的组件,来明确出现该问题的原因。

0 回复 有任何疑惑可以回复我~
  • 提问者 慕无忌2576682 #1
    vue3的官方文档已经更新了,用他们最新的用法,就不会出现这种问题了,最新的文档路由过渡动画没有 mode="out-in"这个模式
    <router-view v-slot="{ Component }">
      <transition name="fade">
        <component :is="Component" key="route.path" />
      </transition>
    </router-view>
    回复 有任何疑惑可以回复我~ 2021-12-28 09:29:53
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信