vue 动态组件component

news2024/10/6 18:20:51

这篇文章主要介绍了 vue 动态组件component ,vue提供了一个内置的<component>,专门用来实现动态组件的渲染,这个标签就相当于一个占位符,需要使用is属性指定绑定的组件,想了解更多详细内容的小伙伴请参考下面文章的具体内容

    • component

如何实现动态组件渲染

vue提供了一个内置的<component> ,专门用来实现动态组件的渲染。

这个标签就相当于一个占位符,需要使用is属性指定绑定的组件

<button @click="comName = 'Left'">展示Left</button>

<button @click="comName = 'Right'">展示Right</button>

<div class="box">

    <!-- 渲染Left组件和Right组件 -->

    <!-- component组件是Vue内置的 -->

    <!-- is表示要渲染的组件的名字 -->

    <component :is="comName"></component>

</div>

<script>

    import Left from '@/compeonents/Left.vue'

    import Right from '@/components/Right.vue'

    export default {

        components: {

            Left,

            Right

        },

        data() {

            return {

                //comName 表示要展示的组件的名字

                comName: Left,

            }

        }

    }

</script>
    • keep-alive

    • 存在的问题

当在Left组件中实现一个按钮加一的功能,加一操作后切换组件,再切回来

如下是Left中加一功能

<div class="left-container">

    <h3>Left 组件 ---- {{ count }}</h3>

    <button @click="count += 1">+1</button>

</div>

<script>

    export default {

        data(){

            return {

                count: 0

            }

        }

    }

</script>

操作,进行加一操作后切换到right组件,再切换回来,发现组件中的数据被重写初始化了

使用Vue的生命周期查看Left组件

如下是Left中添加生命周期函数

export default {

    created() {

        console.log('Left 组件被创建了!')

    },

    destoryed(){

        console.log('Left 组件被销毁了~')

    }

}

存在的问题: 在切换组件的同时会销毁和创建组件,这样每次切换到同一组件时得到的组件对象就不是同一个了,会重写初始化数据

    • 使用keep-alive解决

keep-alive 组件也是Vue内置的组件,可以直接使用

在App根组件中如下修改:

<keep-alive>

    <!-- keep-alive 可以把内部的组件进行缓存,而不是销毁组件 -->

    <component :is="comName"></component>

</keep-alive>
    • keep-alive的生命周期

该生命周期,只有在组件使用了keep-alive时才能使用

deactivated当组件被缓存时,自动触发

actived当组件被激活时,自动触发

Left组件中添加如下修改

//当组件第一次被创建时,会先触发created,后触发activated

//当组件被激活时,只会触发activated,不触发created

activated() {

    console.log('组件被激活了,activated')

},

deactivated(){

    console.log('组件被缓存了,deactivated')

}
    • keep-alive 的 include, exclude属性

keep-alive默认会缓存所有被keep-alive包裹的component里的组件

如何指定需要缓存的组件呢:

使用include / exclude 属性,不能同时使用

<keep-alive include="Left,MyRight">

    <component :is="comName"></component>

</keep-alive>

以上指定了需要缓存的组件名称: 注意这里的组件的名称

Left组件中:

export default{}

Right组件中:

export default{

    //当提供了name属性后,组件的名称就是name属性的值

    name: 'MyRight'

}

区分: 组件内name属性,和组件外注册名 的关系

组件外:

import Left '@/components/Left.vue'

components: {

    Left,

}

这里的注册名只用于组件的引用,如果组件内没有name属性那么name默认就是注册名

export default{

    //当提供了name属性后,组件的名称就是name属性的值

    name: 'MyRight'

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/195807.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ChatGPT小白免费使用教程

本教程介绍chargpt使用教程 :不需要翻墙,不需要注册,也不需要缴纳费用 通过本教程您将会使用chargpt写代码 搜索问题写论文 。 我展示了两个问题 问题一 :用python写一个学生信息管理系统 问题二:用python进行中文分词

【iMessage苹果相册推】CSR邮箱必须与证书分属的AppID相同。 若是您可以在步伐中吸取令牌,则此步伐是成功的。

推荐内容IMESSGAE相关 作者✈️IMEAX推荐内容iMessage苹果推软件 *** 点击即可查看作者要求内容信息作者✈️IMEAX推荐内容1.家庭推内容 *** 点击即可查看作者要求内容信息作者✈️IMEAX推荐内容2.相册推 *** 点击即可查看作者要求内容信息作者✈️IMEAX推荐内容3.日历推 *** …

Echarts修改柱状图柱子的宽度

第009个点击查看专栏目录Echarts的柱状图通常我们不去设置柱子的宽度&#xff0c;都是以默认的状态来处理。柱条的宽度&#xff0c;不设时自适应。 series-bar. barWidth 自适应 设定值可以是绝对值例如 10 或者百分数例如 ‘60%’。百分数基于自动计算出的每一类目的宽度。 …

Mac使用Maven出现command not found的问题

问题 Maven一直使用的好好的&#xff0c;但某一天开始突然挂了&#xff0c;出现command not found的问题&#xff08;事后推测可能是在多次修改.bash_profile后导致的误删配置&#xff09; 尝试1&#xff1a;先是问度娘&#xff0c;得到的答案清一色的是添加如下行到.bash_pro…

第九层(11):STL之常用遍历算法

文章目录前情回顾常用算法常用遍历算法for_eachtransform下一座石碑&#x1f389;welcome&#x1f389; ✒️博主介绍&#xff1a;一名大一的智能制造专业学生&#xff0c;在学习C/C的路上会越走越远&#xff0c;后面不定期更新有关C/C语法&#xff0c;数据结构&#xff0c;算法…

Git基本信息和日常操作记录

文章目录一、Git1、干啥的2、Git 与svn 的区别二、Git操作记录注意2.1、配置别名2.2、初始化本地git仓库&#xff08;创建新仓库&#xff09;2.3、配置用户名2.4、配置邮件2.4、clone远程仓库2.5、查看配置2.6、暂存修改撤回2.7、配置 git log 日志快捷命令2.8、git 自定义配置…

一刷代码随想录——二叉树

理论基础【1】分类满二叉树完全二叉树优先级队列其实是一个堆&#xff0c;堆就是一棵完全二叉树&#xff0c;同时保证父子节点的顺序关系。二叉搜素树二叉搜索树是有数值的&#xff0c;二叉搜索树是一个有序树。平衡二叉搜素树&#xff08;AVL&#xff09;C中map、set、multima…

Allegro走线规则管理器中网络不会被同步高亮的解决办法

Allegro走线规则管理器中网络不会被同步高亮的解决办法 在用Allegro做PCB设计的时候,在走线的时候,规则管理器中的网络能被高亮起来的话会十分直观,尤其是在做等长设计的时候。 但是有时候会遇到走线的时候,规则管理器中的网络不会同步高亮的情况 如下图: 下面介绍遇到这…

Baklib教您:如何构建有效的帮助中心知识库?

好的帮助中心网站架构良好并精心呈现&#xff0c;使客户可以轻松浏览网站并找到他们要搜索的内容。帮助中心应始终易于搜索&#xff0c;为客户提供品牌知识库的可访问版本&#xff0c;该帮助中心应以用户体验为核心。该站点通常会包含常见问题解答、文章和各种说明&#xff0c;…

SNMP源码分析

源码下载 http://www.net-snmp.org/download.html 源码目录结构 net-snmp程序逻辑 &#xff08;1&#xff09;main主函数 #ifdef WIN32SERVICE //windows系统下使用snmp static int SnmpDaemonMain(int argc, TCHAR * argv[]) #else //linux系统 int main(int argc, char …

吊打面试官,四面拿到阿里、字节 offer 后我还是选择了美团

祸兮福之所倚福兮祸之所伏 上学的时候对这句话不以为然&#xff0c;但是在社会上走的时间越长越觉得有道理 前不久好兄弟和领导闹矛盾裸辞了&#xff0c;身为好兄弟的我总不能干看着吧&#xff0c;总要帮他找工作的。(你们应该不会想我和他一起裸辞吧) 大学的师兄有好几个在大…

西门子200smart与组态王之间无线Profinet通信实例

在实际系统中&#xff0c;车间里分布多台PLC&#xff0c;需要用上位机软件集中控制。通常所有设备距离在几十米到上百米不等。在有通讯需求的时候&#xff0c;如果布线的话&#xff0c;工程量较大且不美观&#xff0c;这种情况下比较适合采用无线通信方式。本方案以组态王和2台…

19 | Rancher 使用介绍(管理 K8s 平台)

目录1 Rancher简介2 Rancher 安装2.1查看k8s的版本2.2 通过 Docker 来进行安装2.3 在 Rancher 的界面上绑定 K8s2.3.1 配置 Kubernetes 集群2.3.2 导入集群2.3.3 集群列表3 Rancher 上部署应用1 Rancher简介 Rancher 提供的功能&#xff1a; 支持 K8s 集群的身份验证和基于角色…

pod内时间时区与宿主机不一致

原因&#xff1a;pod内默认时区是UTC&#xff0c;宿主机时区是CST解决方式&#xff1a;一&#xff0c;如果仅仅是运行一个jar文件&#xff0c;可以使用如下命令&#xff1a;java -jar -Duser.timezoneGMT08 xxx.jar在k8s的Deployment文件中&#xff0c;加入上述JVM启动参数&…

一文读懂I/O模型

什么是IO呢&#xff1f;什么是阻塞非阻塞IO&#xff1f;什么是同步异步IO&#xff1f;什么是IO多路复用&#xff1f;select/epoll跟IO模型有什么关系&#xff1f;有几种经典IO模型呢&#xff1f;BIO、NIO、AIO到底有什么区别的&#xff1f; 如果这些问题&#xff0c;你都能很好…

hjr-微服务(六):如何保障服务稳定性

服务稳定是一个特别大的话题&#xff0c;一般我们用SLA描述服务的质量 SLA一般有99.9 &#xff0c;99.99&#xff0c;就是我们常说的三个9&#xff0c;四个9 有两个纬度衡量 时间纬度 请求纬度 请求的成功率计算方式&#xff1a;SL A 成功请求/&#xff08;成功请求请求失败…

【计算机网络】IP协议

网络层 在复杂的网络环境中寻找一条合适的路径传输数据 IP协议 IP指网际互连协议&#xff0c;Internet Protocol的缩写&#xff0c;是TCP/IP体系中的网络层协议。设计IP的目的是提高网络的可扩展性&#xff1a;一是解决互联网问题&#xff0c;实现大规模、异构网络的互联互通…

【先进设备】仅3mm!超薄款,足底压力步态测量分析系统

产品介绍足底压力步态测量分析系统是一套可用于采集人体足底压力的装置系统&#xff0c;其采用了高密度薄膜压力传感器矩阵&#xff0c;实现足底压力分布数据自动采集和分析&#xff0c;兼具大量程、高采集频率、高精度、高可靠性等特点&#xff0c;可以采集不同疾病的步态及足…

表白生日祝福和3D表白相册

作者&#xff1a;BSXY_19计科_陈永跃BSXY_信息学院注&#xff1a;未经允许禁止转发任何内容表白生日祝福和3D表白相册1、效果与展示2、资源下载3、PC版本生日祝福4、手机版本生日祝福5、动态相册6、如何给别人看1、效果与展示 好友给了我一个链接&#xff0c;我点看一看原来都…

【操作系统】2、进程管理

文章目录二、进程管理2.1 进程、线程的基本概念2.1.1 进程的组成和特性2.1.2 进程的状态和转换2.1.3 进程控制(理解)2.1.4 线程的概念2.1.5 线程的实现方式2.1.5.1 用户级线程2.1.5.2 内核级线程2.1.5.3 多线程模式2.1 6 线程的状态与转换2.2 进程同步2.2.1 概念2.2.2 进程互斥…