欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 文化 > 关于keepalive和<component>

关于keepalive和<component>

2025/4/19 0:39:32 来源:https://blog.csdn.net/qq_58614993/article/details/147278593  浏览:    关键词:关于keepalive和<component>

keepalive:
官网说:它的功能是在多个组件间动态切换时缓存被移除的组件实例。
我说:就是保护某个组件使之不会在切换的时候被重置
component:
类似于tab的动态组件实现,一个简单的小例子就能明白

<script>
import Home from './Home.vue'
import Posts from './Posts.vue'
import Archive from './Archive.vue'export default {components: {Home,Posts,Archive},data() {return {currentTab: 'Home',tabs: ['Home', 'Posts', 'Archive']}}
}
</script><template><div class="demo"><buttonv-for="item in tabs":key="item":class="['tab-button', { active: currentTab === item }]"@click="currentTab = item">{{ item }}</button><component :is="currentTab" class="tab"></component></div>
</template>

通过:is="currentTab"绑定currentTab来匹配组件

当使用<component :is=“…” 来在多个组件间作切换时,被切换掉的组件会被卸载。我们可以通过 <KeepAlive组件强制被切换掉的组件仍然保持“存活”的状态。
关于keepAlive直接把官网复制过来
缓存实例的生命周期​
当一个组件实例从 DOM 上移除但因为被 <KeepAlive缓存而仍作为组件树的一部分时,它将变为不活跃状态而不是被卸载。当一个组件实例作为缓存树的一部分插入到 DOM 中时,它将重新被激活。

一个持续存在的组件可以通过 activated 和 deactivated 选项来注册相应的两个状态的生命周期钩子:

export default {activated() {// 在首次挂载、// 以及每次从缓存中被重新插入的时候调用},deactivated() {// 在从 DOM 上移除、进入缓存// 以及组件卸载时调用}
}

请注意:

activated 在组件挂载时也会调用,并且 deactivated 在组件卸载时也会调用。

这两个钩子不仅适用于 <KeepAlive 缓存的根组件,也适用于缓存树中的后代组件

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词