小白学习Vue(8)--动态组件(<component v-bind:is=““>的使用)以及keep-alive
发布日期:2021-05-08 02:04:51 浏览次数:18 分类:精选文章

本文共 794 字,大约阅读时间需要 2 分钟。

动态组件:通过 Vue 的
元素实现

在 Vue.js 开发中,动态组件是一项强大的功能,通过 <component> 元素的 v-bind:is 属性,可以灵活地切换不同组件的显示内容。

8.1. 【栗子】

使用 v-for 构建多个按钮时,可以结合 v-bind:key 一起使用,这样可以提高组件的渲染效率。点击按钮时,可以通过改变 currentTab 的值来切换当前显示的 Tab 组件。

currentTabComponent 的值发生变化时,Vue 实例会自动切换到对应的组件。例如,当 currentTab 的值为 tab-posts 时,会渲染 tab-posts 组件。

需要注意的是,使用动态组件时,对应的组件必须提前注册。

8.2. keep-alive

在动态组件切换时,如果发现切换回之前的组件会导致内容丢失,可以使用 <keep-alive> 标签来包裹 <component>。这样可以避免组件实例被销毁,而是缓存不活动的组件实例。

使用 <keep-alive> 包裹动态组件时,组件实例会被缓存,而不是销毁。这对于频繁切换组件时非常有用。

8.1.1. include & exclude 属性

keep-alive 标签还支持 includeexclude 属性,分别用于指定要缓存的路由或组件,以及不需要缓存的组件。

可以通过逗号分隔的字符串、正则表达式或数组形式指定匹配的路由或组件。

8.1.2. :max 属性

从 Vue.js 2.5 开始,keep-alive 标签支持 :max 属性,可以指定缓存的最大组件实例数量。一旦达到这个数量,系统会销毁最长时间未被访问的组件实例。

这种机制可以帮助优化内存占用,防止因为长时间不活跃而导致的组件实例积累。

上一篇:小白学习Vue(9)--箭头函数 | this指向 | 指令缩写
下一篇:小白学习Vue(7)--实例方法/生命周期(vm.$nextTick | vem.$mount)

发表评论

最新留言

感谢大佬
[***.8.128.20]2025年04月08日 21时10分59秒