vue2 和 vue3 :关于keep-alive 使用的不同

vue3中不能直接使用keep-alive

vue2 和 vue3 对于keep-alive使用方法的区别

  1. vue2使用方法

  2. vue3使用方法

机制

当一个组件被keep - alive包裹时,在组件切换过程中,如果该组件被再次使用,它不会被重新创建,而是直接使用之前缓存的实例。这对于性能优化非常有帮助,特别是在频繁切换组件但组件内容不需要每次都重新加载的场景下

理解原因

Vue 3 的响应式原理和组件渲染更新机制变化,vue3禁止了vue2的那种直接用法

在 Vue 2 中,transition组件包裹router - view的方式是比较直接的。Vue 2 的响应式系统是基于Object.defineProperty()来实现的。transition组件能够相对简单地监听子组件(这里是router - view中的组件)的插入和移除等操作

Vue 3 采用了Proxy对象来实现响应式。这使得组件的渲染和更新过程在内部机制上有所改变。Vue 3 更加注重组合式 API 和组件之间的逻辑复用,通过v - slot获取router - view中的组件,更好地在外部组件中对内部组件进行状态管理、事件处理等操作

测试代码地址可见:vue2 和 vue3 :关于keep-alive 使用的不同vue3中不能直接使用keep-alive包裹, vue2 - 掘金 (juejin.cn)

相关推荐
卸任11 小时前
Vibe coding工具使用心得
前端·ai编程
brien911 小时前
为什么模型标称 1M,Google Antigravity 聊到 256K 却突然失忆?我们给它做了个原生行内监控圆环
前端
修炼的dance12 小时前
录屏关键帧间隔多少合适?六档实测,2秒到10秒小了75.6%
前端
Lank_M12 小时前
关键帧从1秒拉到10秒,录屏小87.3%,摄像头小10.8%
前端
补码缩写12 小时前
用 ffprobe 拆录屏,八成字节在 29 个关键帧上
前端
百思不得小李12 小时前
一个复杂的动态表单是如何实现的
前端·设计模式
陈随易12 小时前
Cmder 停更 17 个月,2.0 支持 Windows Terminal
前端·后端·程序员
风骏时光牛马12 小时前
前沿视界
前端
kyriewen12 小时前
我扫了 814 个依赖,97 个还敢要 Node 10
前端·javascript·程序员
陈随易13 小时前
3000 万人在用的翻译插件,重写一遍就是一门生意
前端·后端·程序员