Vue3实战笔记(65)—记录本项目浪费不少时间求证的问题

文章目录


前言

笔记最重要的作用就是温故而知新,最近遇到不少问题都是曾经遇到的,知道就是想不起来,查查自己的笔记都轻松解决了,老怀甚慰,深刻的意识到及时记录问题的重要性,今天记录几个最近遇到的几个看似简单解决起来却比较耗时的问题。


一、多个根问题

1、多个router-view之间切换,我从子路由切换到其他的router-view,路由过去了,界面没反应。尝试了很多方案,甚至使用router-view命名方式,也没有解决。

解决方案:

最外层router-view 使用了过渡动画,导致的这个问题的原因是:

runtime-core.esm-bundler.js:39 [Vue warn]: Component inside renders non-element root node that cannot be animated.

javascript 复制代码
    <router-view  v-slot="{ Component }">
       <transition name="bounce" mode="out-in" >
          <component :is="Component" />
      </transition>
    </router-view>

这个问题很恶心,如果子组件有多个根节点上述写法就会报错,如果组件没有多个根还不报警告,为了不一一更改多个组件,改善一下,加个div

javascript 复制代码
  <router-view  v-slot="{ Component }">
       <transition name="bounce" mode="out-in" >
        <div >
          <component :is="Component" />
        </div>
      </transition>
    </router-view>

二、动画失效

上一个问题解决了,但是这样改有时候动画会失效,更恶心的还会出现动画弹出来了,内容没了。解决方案需要加个key,transition会根据是key的变化判断元素改变,

触发动画:

javascript 复制代码
 <router-view  v-slot="{ Component }">
       <transition name="bounce" mode="out-in" >
        <div :key="$route.path">
          <component :is="Component" />
        </div>
      </transition>
    </router-view>

三、首次加载动画效果不生效,不同router-view之间切换无动画效。

解决方案:增加首次加载动画生效属性appear

javascript 复制代码
 <router-view  v-slot="{ Component }">
       <transition name="bounce" mode="out-in" >
        <div :key="$route.path">
          <component :is="Component" appear />
        </div>
      </transition>
    </router-view>

总结

这几个问题看似简单却无迹可寻,网上和官网找不到很直接的答案,都是一步步断点,看源码,分析原理思考各种可能性,慢慢探索解决。学习技术不能不求甚解,拿来主义,复制过来或者看看文档的用法,很多问题是自己解决不掉的。一入动画深似海。。。这几个问题看似简单却无迹可寻,网上和官网找不到很直接的答案,都是一步步断点,看源码,分析原理思考各种可能性,慢慢探索解决。学习技术不能不求甚解,拿来主义,复制过来或者看看文档的用法,很多问题是自己解决不掉的。一入动画深似海。。。

不忧过往,不惧未来,把握今朝,心怀宇宙浩渺。不忧过往,不惧未来,把握今朝,心怀宇宙浩渺。

相关推荐
爱学习的小仙女!35 分钟前
面试题 前端(一)DOCTYPE作用 标准模式与混杂模式区分
前端·前端面试题
南境十里·墨染春水1 小时前
C++ 笔记 友元(面向对象)
开发语言·c++·笔记
小小小小宇1 小时前
前端转后端基础- 变量和类型
前端
cqbelt2 小时前
Python 并发编程实战学习笔记
笔记·python·学习
Cobyte2 小时前
1.基于依赖追踪和触发的响应式系统的本质
前端·javascript·vue.js
主宰者2 小时前
C# CommunityToolkit.Mvvm全局事件
java·前端·c#
计算机学姐3 小时前
基于SpringBoot的咖啡店管理系统【个性化推荐+数据可视化统计+配送信息】
java·vue.js·spring boot·后端·mysql·信息可视化·tomcat
前端小咸鱼一条3 小时前
16.迭代器 和 生成器
开发语言·前端·javascript
·醉挽清风·3 小时前
学习笔记—Linux—信号阻塞&信号捕捉
linux·笔记·学习
Hello_Embed3 小时前
嵌入式上位机开发入门(四):TCP 编程 —— Client 端实现
网络·笔记·网络协议·tcp/ip·嵌入式