Vue动态组件

本文介绍了Vue中动态组件的实现,包括如何通过``标签动态渲染组件,以及如何使用`keep-alive`组件进行组件缓存,减少性能消耗,详细讲解了`keep-alive`的生命周期函数和include/exclude属性的用法。
摘要由CSDN通过智能技术生成

Vue动态组件

一、什么是动态组件?

答:动态组件指的是动态切换组件的显示和隐藏。

二、如何实现动态组件渲染?

1.Vue提供了一个内置的组件,专门用来实现动态组件的渲染。示例代码如下:

  <div class="app-container">
    <button @click="comName = 'Left'">Left</button>
    <button @click="comName = 'Right'">Right</button>
    <div class="box">
      <!-- 1.使用componet组件占位符 -->
      <!-- 2.通过is 属性的值表示要渲染哪个组件 -->
      <component :is="comName"></component>
    </div>
  </div>
</template>
<script>
import Left from '@/components/Left'
import Right from '@/components/Right'
export default {
  components:{
    Left,
    Right
  },
  data() {
    return {
      comName:'Left'
    }
  },

三、keep-alive组件缓存

1.keep-alive有什么作用?

component方法的好处在于组件之间的切换自如,但是切换的同时也会销毁上一个组件,每一次切换都会销毁和重新渲染,这消耗了很大的性能。我们可以通过使用来帮助我们对组件进行缓存。

2.keep-alive对应的生命周期函数

(1)activated():当组件被激活时会自动触发组件的activated生命周期函数。

(2)deactivated():当组件被缓存时会自动触发组件的deactivated生命周期函数。

3.如何使用keep-alive?

代码如下:

    <button @click="comName = 'Left'">Left</button>
    <button @click="comName = 'Right'">Right</button>
    <div class="box">
      <!-- 1.使用componet组件占位符 -->
      <!-- 2.通过is 属性的值表示要渲染哪个组件 -->
      <keep-alive>
        <component :is="comName"></component>
      </keep-alive>
    </div>
  </div>
</template>
<script>
import Left from '@/components/Left'
import Right from '@/components/Right'
export default {
  components:{
    Left,
    Right
  },
  data() {
    return {
      comName:'Left'
    }
  1. keep-alive的两个属性

    (1)include属性:可以指定哪个组件是缓存的。
    (2)exclude属性:可以指定哪个组件是不缓存的。

  2. keep-alive属性的使用方法

    (1)include的使用:

      <--include="指定需要缓存的组件名"此处的Left和Right是组件名。
      组件名之间要用英文“,”分割哦。
      -->
      <keep-alive include="Left,Right">
        <component :is="comName"></component>
      </keep-alive>
    

    (2)exclude的使用:

      <--exclude="指定不需要的组件名"此处的Left和Right是组件名。
      组件名之间要用英文“,”分割哦。
      -->
      <keep-alive exclude="Left,Right">
        <component :is="comName"></component>
      </keep-alive>
    
  3. keep-alive组件缓存的注意事项:

    (1)keep-alive默认情况下是所有组件都被缓存的。

    (2)include和exclude不可以同时使用!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值