发布网友 发布时间:2022-04-23 08:43
共2个回答
懂视网 时间:2022-05-15 04:55
keep-alive 是 Vue 内置的一个组件,可以使被包含的组件保留状态,或避免重新渲染。这篇文章主要介绍了vue 指定组件缓存,需要的朋友可以参考下keep-alive 简介
keep-alive 是 Vue 内置的一个组件,可以使被包含的组件保留状态,或避免重新渲染。
用法也很简单:
props
include - 字符串或正则表达,只有匹配的组件会被缓存
exclude - 字符串或正则表达式,任何匹配的组件都不会被缓存
遇见 vue-router
router-view 也是一个组件,如果直接被包在 keep-alive 里面,所有路径匹配到的视图组件都会被缓存:
然而产品汪总是要改需求,拦都拦不住...
问题
如果只想 router-view 里面某个组件被缓存,怎么办?
使用 include/exclude
增加 router.meta 属性
使用 include/exclude
exclude 例子类似。
缺点:需要知道组件的 name,项目复杂的时候不是很好的选择
增加 router.meta 属性
优点:不需要例举出需要被缓存组件名称
【加盐】使用 router.meta 拓展
假设这里有 3 个路由: A、B、C。
需求:
默认显示 A
B 跳到 A,A 不刷新
C 跳到 A,A 刷新
实现方式
在 A 路由里面设置 meta 属性:
在 B 组件里面设置 beforeRouteLeave:
在 C 组件里面设置 beforeRouteLeave:
这样便能实现 B 回到 A,A 不刷新;而 C 回到 A 则刷新。
上面是我整理给大家的,希望今后会对大家有帮助。
相关文章:
基于Blod的ajax进度条下载实现示例代码
用Promise解决多个异步Ajax请求导致的代码嵌套问题
Ajax 传递JSON实例代码
热心网友 时间:2022-05-15 02:03
如果是在父附件中,可以通过ref