vue 动态组件 创建 缓存 激活 keep-alive activated deactivated

本文详细介绍了如何在Vue.js中创建动态组件,包括动态组件的缓存机制,如何解决缓存中的问题,以及利用keep-alive实现组件的激活(activated)和非激活(deactivated)状态管理。通过示例代码展示了动态加载、缓存效果以及激活状态触发的相关操作。
摘要由CSDN通过智能技术生成

简介

在同一个挂载点,可以切换显示不同组件

动态组件 - 创建

效果

在这里插入图片描述

代码

在这里插入图片描述

<template>
  <div>
    <button @click="comName = 'UserName'">账号密码填写</button>
    <button @click="comName = 'UserInfo'">个人信息填写</button>
    <p>下面显示注册组件 - 动态切换:</p>
    <div style="border: 1px solid red;">
      <component :is="comName"></component>
    </div>
  </div>
</template>
<script>
import UserName from '../components/01/UserName.vue'
import UserInfo from '../components/01/UserInfo.vue'
export default {
  data () {
    return {
      comName: "UserName",
    }
  },
  components: {
    UserName,
    UserInfo
  }
}
</script>

动态组件 - 缓存

避免组件频繁切换 - 造成的创建和销毁,提高性能

语法

Vu e内置的 keep-alive 组件包起来要频繁切换的组件

BUG效果

在这里插入图片描述

正确效果

在这里插入图片描述

代码

在这里插入图片描述

<template>
  <div>
    <button @click="comName = 'UserName'">账号密码填写</button>
    <button @click="comName = 'UserInfo'">个人信息填写</button>
    <p>下面显示注册组件 - 动态切换:</p>
    <div style="border: 1px solid red;">
      <!-- Vue 内置 keep-alive 组件,把包起来的组件缓存起来 -->
      <keep-alive>
        <component :is="comName"></component>
      </keep-alive>
    </div>
  </div>
</template>

动态组件 - 激活、非激活

扩展:2个新的生命周期方法(钩子函数)

  • activated - 激活时触发
  • deactivated - 失去激活状态触发

效果

在这里插入图片描述

代码

在这里插入图片描述

<script>
export default {
  created () {
    console.log("02-UserName-创建")
  },
  destroyed () {
    console.log("02-UserName-销毁")
  },
  // 组件缓存下 - 多了2个钩子函数
  activated () {
    console.log("02-UserName-激活")
  },
  deactivated () {
    console.log("02-UserName-失去激活")
  }
}
</script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

259-aaa

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值