v-memo缓存指定依赖未变时的整棵子树vnode,跳过diff与更新;适用于结构稳定但外部状态高频变化的场景,需精准声明依赖数组以避免失效或性能倒退。

Vue 3.2+ 引入的 v-memo 不是用来“缓存静态 VNode”的——它缓存的是**一组 VNode 的渲染结果(即 patch flag 对应的子树)**,且仅在依赖值未变化时跳过该子树的 diff 和更新。它不改变节点是否“静态”,也不替代 v-once 或编译器自动标记的静态提升。
理解 v-memo 的真实作用
v-memo 是一个指令,接收一个数组作为依赖项(如 v-memo="[count, isActive]")。当数组中每个值与上一次完全相等(Object.is)时,Vue 会复用上次生成的子树 VNode,跳过整个子树的 props 更新、事件重绑定、子组件重新渲染、内部 diff 等开销。
它不是内存级缓存,不持久化;也不是对单个节点生效,而是作用于其包裹的整个模板片段(即它的直接子节点构成的子树)。
vue-composition-api-best-practices
Vue 3 组合式 API 与
热门下载
相关下载
精品课程
相关推荐
/
热门推荐
/
最新课程
最新文章
