有的时候,在不同组件之间进行动态切换是非常有用的。即页面的某个位置要显示的组件是不确定的,是会变化的。(多个组件每次只显示一个并且动态的进行切换

场景:像局部的小的那种选项卡

语法:

在页面想显示我们多个组件的时候会用下面的语法 来声明挂载点

<component :is="你具体要显示那个组件的变量"> </component>方法实现

首先在components里先来三个组件(内容随便写)

然后比如想在Home页面用

<template><div>Home页面<button @click="fun('One')">点我去one</button><button @click="fun('Two')">点我去two</button><button @click="fun('Three')">点我去three</button><component :is="com"></component></div>
</template><script>
import One from "@/components/one.vue"
import Two from "@/components/two.vue"
import Three from "@/components/three.vue"
export default {data(){return {com:"Three"}},methods:{fun(data){this.com = data}},components:{One,Two,Three}
}
</script>

记住一句话:多个组件使用同一个挂载点并且动态切换

思考

动态组件中如果有多个输入框 那么我们在切换动态组件的时候会发现这些驶入框的内容会丢失

多个路由页面中如果有多个输入框 那么我们在切换路由页面的时候会发现这些驶入框的内容也会丢失

我们在路由或者是动态组件切换的时候,因为每次切换vue都会创建一个新的vue组件实例,所以会丢失

keep-alive

可以在keep-alive包裹的内容,在切换的时候把数据状态保存在内存中,防止重复的DOM渲染 减少了性能与时间上的损耗

比如:用在动态组件之上

 <keep-alive><component :is="com"></component></keep-alive>

用在路由之上只需包裹路由的出口

 <keep-alive><router-view/></keep-alive>

动态组件的属性

include 你想缓存谁 (比如我想缓存One)

 <keep-alive  include="One"><component :is="com"></component></keep-alive>

可以写多个中间用逗号隔开

<keep-alive  include="One,Two"><component :is="com"></component>
</keep-alive>

exclude 你不想缓存谁(我不想缓存One和Two)

<keep-alive  exclude="One,Two"><component :is="com"></component>
</keep-alive>

其中exclude的优先级比include高

动态组件的钩子函数

有两个钩子函数 但是在写的时候一定要在被keep-alive所管理的组件中进行使用

activated 进入到被keep-alive管理的组件时候触发

deactivated 离开被keep-alive管理的组件时候触发

<script>export default {activated(){console.log("进入到keep-alive管理的组件了")},deactivated(){console.log("离开了keep-alive管理的组件了")}}
</script>

Vue 动态组件component相关推荐

  1. element vue 获取select 的label_Vue动态组件component的深度使用

    背景介绍 最近在封装一些基于Vue+ElementUI的组件,将一些实际项目中常用的,有一定规律的业务进行抽象总结,开发出相应的Vue组件. 组件封装 首先想到的就是Form组件,在Element U ...

  2. vue 动态组件组件复用_真正的动态声明性组件

    vue 动态组件组件复用 在这篇简短的文章中,我将重点介绍ADF动态声明性组件. 我的意思是一个众所周知的ADF标签af:declarativeComponent . 它可以用作将页面设计为页面片段和 ...

  3. vue 动态组件使用教程

    vue 动态组件的使用,下面进行介绍 1.基本使用 新建组件 Article.vue <template><div><p>黄州东南三十里为沙湖,亦曰螺师店.予买田其 ...

  4. Vue动态组件 异步组件 keep-alive

    动态组件指的是动态切换组件的显示与隐藏 每次进行组件间的切换时,Vue都创建了一个新的组件实例,同时存在销毁过程 为了避免过程一每次进行销毁重建的问题,那么可以通过 keep-alive 来处理 &l ...

  5. vue内置动态组件component使用详解

    1 动态组件介绍 component是vue内置组件,主要作用为动态渲染组件,基本用法如下: <!-- 动态组件由 vm 实例的 `componentName` property 控制 --&g ...

  6. 三十七、深入Vue.js组件Component(下篇)

    @Author:Runsen @Date:2020/7/4 人生最重要的不是所站的位置,而是内心所朝的方向.只要我在每篇博文中写得自己体会,修炼身心:在每天的不断重复学习中,耐住寂寞,练就真功,不畏艰 ...

  7. vue ---- 动态组件

    动态切换组件的显示隐藏 component 如何实现动态组件渲染 vue提供了一个内置的<component>,专门用来实现动态组件的渲染. 这个标签就相当于一个占位符,需要使用is属性指 ...

  8. Vue动态组件、组件缓存、组件激活和非激活、组件插槽、组件name

    一.动态组件 如何切换2个组件 互斥的显示或者隐藏呢 除了v-if 什么是动态组件? 多个组件使用同一个挂载点,并动态切换.这就是动态组件 完成一个注册功能页面, 2个按钮切换, 一个填写注册信息, ...

  9. vue动态组件的实现和传值

    动态组件的实现和传值 1.动态组件的实现 动态组件是使用 component 组件,通过一个特殊的attribute is 来实现 <template><div><but ...

  10. 三十六、深入Vue.js组件Component(上篇)

    @Author:Runsen @Date:2020/6/15 人生最重要的不是所站的位置,而是内心所朝的方向.只要我在每篇博文中写得自己体会,修炼身心:在每天的不断重复学习中,耐住寂寞,练就真功,不畏 ...

最新文章

  1. 概率论与数理统计--样本及抽样分布
  2. teechart属性和方法
  3. linux内核arch目录,各个处理器的介绍
  4. 线性代数:第一章 行列式(2)行列式按行(列)展开 克拉默法则
  5. 从计算机知识到落地能力,你欠缺了什么?
  6. C#遍历一个文件夹下的所有可执行文件
  7. STM32 RTC 使用
  8. MVC 特性使用总结
  9. 蓝桥杯 ADV-95 算法提高 字符串比较
  10. cgi python_通读Python官方文档之cgi
  11. 实战!手把手教你如何编写一个Linux驱动并写一个支持物联网的LED演示demo
  12. 机器学习概念笔记(1)——混淆矩阵、Precision、Recall、F-score
  13. RHEL 6.2 Error: Cannot create GC thread. Out of system resources.
  14. 使用Markdown编写微信公众号文章
  15. 《单片机原理及应用(魏洪磊)》第七章第9题
  16. KALI-LINUX桥接模式下网络配置(学习笔记)
  17. Java学习笔记【10】常用类 - - Math类、Random类及随机数详解
  18. 故障:Office 重复提示激活
  19. unity材质球发光_Unity利用材质自发光实现物体闪烁
  20. 四川汶川地震涌现出的16个最牛

热门文章

  1. 双态IT时代,你需要什么样的IT咨询服务?
  2. 一文搞懂PID控制算法
  3. Chrome 启动参数
  4. 【STM32H7的DSP教程】第22章 DSP矩阵运算-放缩,乘法和转置矩阵
  5. 计算机三级考点2:管理和运营宽带城域网的关键技术
  6. 会计新规给保险业带来的影响
  7. 蜂巢(已更名为网易云计算基础服务)计费系统架构升级之路
  8. QQ群下载解除限速小技巧【提高千倍不止】【无需会员】
  9. 视频文件转gif图片Movie To GIF使用
  10. 使用java做地图_在地图中使用Java