vue关于动态组件缓存

本文讲述了如何在Vue中使用v-bind:is动态切换组件,并利用:key属性实现组件的缓存重用。特别提到了检查路由name与页面名称一致性的重要性,以确保组件正确复用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

踩坑记录:

v-bind:is来动态传入模板并缓存它们

在这个例子中,我们有两个按钮来切换currentComponent的值,currentComponent的值会被绑定到<component>元素的is属性上。通过改变currentComponent的值,你可以动态地在页面上显示不同的组件。

注意,为了确保组件能够正确地被缓存,使用了:key属性绑定到<component>元素上,这个key与当前激活的组件的名称相同。这确保了每次切换时,如果组件存在,它会被复用而不是重新创建。

如果发现切换到其他页面后再切换回来还是没缓存,可检查下 路由name跟当面页面得name是否一致。要保持一致

<template>
  <div>
    <button @click="currentComponent = 'ComponentA'">显示组件A</button>
    <button @click="currentComponent = 'ComponentB'">显示组件B</button>
    <component :is="currentComponent" :key="currentComponent"></component>
  </div>
</template>
 
<script>
export default {
name:'name1', // 要与路由name:'name1'一致
  data() {
    return {
      currentComponent: 'ComponentA'
    };
  },
  components: {
    ComponentA: {
      template: '<div>组件A的内容</div>',
      // 其他选项...
    },
    ComponentB: {
      template: '<div>组件B的内容</div>',
      // 其他选项...
    }
    // 可以根据需要添加更多的组件
  }
};
</script>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值