VUE组件——动态组件、组件缓存

动态组件:多个组件同时使用同一个挂载点,并动态的进行切换,就是动态组件

<template>
  <div>
      <button @click="comName = 'page1'">page1</button>
      <button @click="comName = 'page2'">page2</button>

      <p>下面显示注册组件-动态切换:</p>
      <div>
          <component :is="comName"></component>
          
          //vue内置component组件, 配合is属性, 设置要显示的组件名字
          
      </div>
  </div>
</template>

<script>
import page1 from './components/page1'
import page2 from './components/page2'
export default {
    data(){
        return {
            comName: "page1"
        }
    },
    components: {
        page1,
        page2
    }
}

组件缓存:当组件动态切换较为频繁时,组件会经常创建和销毁,影响性能。
Vue内置了 keep-alive 组件,可以让被keep-alive包裹的组件存储在内存中而不被销毁。

<template>
  <div>
     <keep-alive>
          <component :is="comName"></component>
     </keep-alive>  
  </div>
</template>

补充:被 keep-alive 包裹的组件会有两个生命周期

  • activated - 激活状态
  • deactivated - 失去激活状态

同时有两个对应的钩子方法:
activated - 激活时触发
deactivated - 失去激活时触发

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值