Vue 动态组件component
有的时候,在不同组件之间进行动态切换是非常有用的。即页面的某个位置要显示的组件是不确定的,是会变化的。(多个组件每次只显示一个并且动态的进行切换)
场景:像局部的小的那种选项卡
语法:
在页面想显示我们多个组件的时候会用下面的语法 来声明挂载点
<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相关推荐
- element vue 获取select 的label_Vue动态组件component的深度使用
背景介绍 最近在封装一些基于Vue+ElementUI的组件,将一些实际项目中常用的,有一定规律的业务进行抽象总结,开发出相应的Vue组件. 组件封装 首先想到的就是Form组件,在Element U ...
- vue 动态组件组件复用_真正的动态声明性组件
vue 动态组件组件复用 在这篇简短的文章中,我将重点介绍ADF动态声明性组件. 我的意思是一个众所周知的ADF标签af:declarativeComponent . 它可以用作将页面设计为页面片段和 ...
- vue 动态组件使用教程
vue 动态组件的使用,下面进行介绍 1.基本使用 新建组件 Article.vue <template><div><p>黄州东南三十里为沙湖,亦曰螺师店.予买田其 ...
- Vue动态组件 异步组件 keep-alive
动态组件指的是动态切换组件的显示与隐藏 每次进行组件间的切换时,Vue都创建了一个新的组件实例,同时存在销毁过程 为了避免过程一每次进行销毁重建的问题,那么可以通过 keep-alive 来处理 &l ...
- vue内置动态组件component使用详解
1 动态组件介绍 component是vue内置组件,主要作用为动态渲染组件,基本用法如下: <!-- 动态组件由 vm 实例的 `componentName` property 控制 --&g ...
- 三十七、深入Vue.js组件Component(下篇)
@Author:Runsen @Date:2020/7/4 人生最重要的不是所站的位置,而是内心所朝的方向.只要我在每篇博文中写得自己体会,修炼身心:在每天的不断重复学习中,耐住寂寞,练就真功,不畏艰 ...
- vue ---- 动态组件
动态切换组件的显示隐藏 component 如何实现动态组件渲染 vue提供了一个内置的<component>,专门用来实现动态组件的渲染. 这个标签就相当于一个占位符,需要使用is属性指 ...
- Vue动态组件、组件缓存、组件激活和非激活、组件插槽、组件name
一.动态组件 如何切换2个组件 互斥的显示或者隐藏呢 除了v-if 什么是动态组件? 多个组件使用同一个挂载点,并动态切换.这就是动态组件 完成一个注册功能页面, 2个按钮切换, 一个填写注册信息, ...
- vue动态组件的实现和传值
动态组件的实现和传值 1.动态组件的实现 动态组件是使用 component 组件,通过一个特殊的attribute is 来实现 <template><div><but ...
- 三十六、深入Vue.js组件Component(上篇)
@Author:Runsen @Date:2020/6/15 人生最重要的不是所站的位置,而是内心所朝的方向.只要我在每篇博文中写得自己体会,修炼身心:在每天的不断重复学习中,耐住寂寞,练就真功,不畏 ...
最新文章
- 概率论与数理统计--样本及抽样分布
- teechart属性和方法
- linux内核arch目录,各个处理器的介绍
- 线性代数:第一章 行列式(2)行列式按行(列)展开 克拉默法则
- 从计算机知识到落地能力,你欠缺了什么?
- C#遍历一个文件夹下的所有可执行文件
- STM32 RTC 使用
- MVC 特性使用总结
- 蓝桥杯 ADV-95 算法提高 字符串比较
- cgi python_通读Python官方文档之cgi
- 实战!手把手教你如何编写一个Linux驱动并写一个支持物联网的LED演示demo
- 机器学习概念笔记(1)——混淆矩阵、Precision、Recall、F-score
- RHEL 6.2 Error: Cannot create GC thread. Out of system resources.
- 使用Markdown编写微信公众号文章
- 《单片机原理及应用(魏洪磊)》第七章第9题
- KALI-LINUX桥接模式下网络配置(学习笔记)
- Java学习笔记【10】常用类 - - Math类、Random类及随机数详解
- 故障:Office 重复提示激活
- unity材质球发光_Unity利用材质自发光实现物体闪烁
- 四川汶川地震涌现出的16个最牛