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)

相关推荐
heyCHEEMS19 小时前
切页回来组件消失了?一个浏览器渲染机制引起的容器高度坍塌 bug
前端·浏览器
iaku19 小时前
Prompt 不是玄学:写给前端的 Prompt 工程指南
前端·人工智能
爱丶不疚19 小时前
在 dsh 仓库里扒到的宝藏工作流:详解 .agents/notes 决策沉淀系统
前端·agent·vibecoding
喜欢睡觉19 小时前
从"送花"讲懂 JavaScript:对象、数据类型与代理模式
前端
渣波19 小时前
NestJS 企业级后端架构实战:从核心代码到工程化思维的深度重构
前端·typescript·nestjs
BreezeJiang19 小时前
别再背工厂模式了:NestJS 第一行代码就是它的工业级落地
前端·javascript
光影少年19 小时前
RN 常见性能问题:JS卡顿、UI卡顿、桥接通信耗时
前端·react native·react.js
liuxiaocheng19 小时前
文本生成的进阶:generateText / streamText 里迟早会撞上的东西
前端·后端·ai编程
渣波19 小时前
深度解析工厂模式:从蜜雪冰城到 NestFactory,彻底搞懂“创建与使用分离”
前端·javascript
蔓越莓19 小时前
打包工具:编译器ESBuild
前端·面试