【Vue3基础】组件保持存活、异步加载组件

一、组件保持存活

1、需求描述

点击按钮跳转到其他组件后,原组件不会被销毁

2、知识整理

1)组件生命周期

创建期:beforeCreate、created

挂载期:beforeMount、mounted

更新期:beforeUpdate、updated

销毁期:beforeUnmount、unmounted

2)保持组件存活keep-alive

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

3)实现异步组件加载

defineAsyncComponent

3、代码演示

1)文件

 2)App.vue文件

<template>
  <keep-alive>
    <component :is="tabComponent"></component>
  </keep-alive>
  <button @click="changeHandle">切换按钮</button>
</template>
<script>
import ComponentA from "./components/ComponentA.vue";
import ComponentB from "./components/ComponentB.vue";
export default{
  data(){
    return{
      tabComponent:"ComponentA"
    }
  },
  components: { 
    ComponentA,
    ComponentB
  },
  methods:{
    changeHandle(){
      this.tabComponent=this.tabComponent=="ComponentA"?"ComponentB":"ComponentA"
    }
  }
}
</script>

3)ComponentA.vue文件

<template>
    <h3>ComponentA</h3>
    <p>{{ message }}</p>
    <button @click="updateHandle">更新数据</button>
</template>
<script>
export default{
    data(){
        return {
            message:"老数据"
        }
    },
    beforeUnmount(){
        console.log("组件卸载之前");
    },
    unmounted(){
        console.log("组件卸载之后");
    },
    methods:{
        updateHandle(){
            this.message="新数据"
        }
    }
}
</script>

4)ComponentB.vue文件

<template>
    <h3>ComponentB</h3>
</template>
<script>

</script>

5、效果展示

1)打开浏览器

 2)点击“更新数据”按钮,“老数据”将变为“新数据”

3)点击“切换按钮”,跳转到组件B中

4)再点击“切换按钮”,跳转回组件A,仍保持显示“新数据”

>>>

二、 异步加载组件

1、关键代码 App.vue文件

<script>
import ComponentA from "./components/ComponentA.vue";
//import ComponentB from "./components/ComponentB.vue";
//异步加载B组件
import { defineAsyncComponent } from "vue";
const ComponentB=defineAsyncComponent(()=>import("./components/ComponentB.vue"))

2、效果展示

1)登录浏览器 ,B组件未被加载

2)点击切换按钮后,才加载B组件

>

三、学习链接

https://www.bilibili.com/video/BV1Rs4y127j8?p=37&spm_id_from=pageDriver&vd_source=841fee104972680a6cac4dbdbf144b50

林月明
关注 关注
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Vue3【插槽 Slots、组件生命周期、生命周期应用 、动态组件组件保持存活异步组件、依赖注入、Vue 应用】(五)-全面详解(学习总结---从入门到深化)
03-26 332
Vue3【插槽 Slots、组件生命周期、生命周期应用 、动态组件组件保持存活异步组件、依赖注入、Vue 应用】(五)-全面详解(学习总结---从入门到深化)
web前端常见面试题
JackieDYH的博客
06-13 681
优点: 1.上手简单,位置固定 缺点: 一个功能往往需要在不同的vue配置项中定义属性和方法,比较分散,项目小还好,清晰明了,但是项目大了后,一个methods中可能包含很多个方法,往往分不清哪个方法对应着哪个功能,而且当你想要新增一个功能的时候你可能需要在 data,methods,computed,watch中都要写一些东西,但是这个时候每个选项里面的内容很多你需要上下来回的翻滚,特别影响效率。这无疑是1号能够获取最大收益的方案了!分配方案可写成(97,0,1,2,0)或(97,0,1,0,2)。
Vue动态加载异步组件的方法
12-10
背景: 目前我们项目都是按组件划分的,然后各个组件之间封装成产品。目前都是采用iframe直接嵌套页面。项目中我们还是会碰到一些通用的组件跟业务之间有通信,这种情况下iframe并不是最好的选择,iframe存在跨域的问题,当然是postMessage还是可以通信的,但也并非是最好的。目前有这么一个场景:门户需要制作通用的首页和数据概览页面,首页和数据概览页面通过小部件来自由拼接。业务组件在制作的时候只需要提供各个模块小部件的url就可以了,可是如果小部件之间还存在联系呢?那么iframe是不好的。目前采用Vue动态加载异步组件的方式来实现小组件之间的通信。当然门户也要提供一个通信的基线:Vu
vue3异步组件加载
许珊珊同学的专栏
06-16 1410
异步引入多组件,按需渲染
27.vue3学习篇-如何使用异步组件
最新发布
qq_34334992的博客
08-30 903
Vue 3 中,异步组件是一种强大的工具,可以实现按需加载和优化应用的性能。
Vue3中如何进行异步组件加载
有我更精彩的博客
04-20 1156
函数,我们可以在Vue3中实现异步组件加载,从而提高应用程序的性能和加载速度。异步组件加载可以根据需要按需加载组件,减少初始加载时间,提高用户体验。通过按需加载组件,可以减少初始加载时间,并在需要的时候才加载相应的组件,从而提高用户体验。Vue.js作为一款流行的前端框架,其最新版本Vue3中引入了许多新的特性和改进,其中包括异步组件加载。在本篇博客中,我将详细介绍Vue3中如何进行异步组件加载,并提供示例代码帮助理解。函数来定义异步加载组件。属性中,我们指定了在组件加载过程中显示的加载组件
vue3中的异步组件
九仞山的专栏
06-09 7785
详细介绍了vue3中的异步组件及Suspense组件
vue3中实现异步组件
MMccGrady的博客
02-20 4059
使用场景一:当组件进入视窗时再进行加载假设页面中有三个组件A、B、CC组件中有一张图片打开页面:如果一个页面中的内容非常多,用户再首次打开时并没有浏览到下方的内容,但页面必须加载完下方的内容才会显示,这无疑非常影响性能接下来我们做一些调整。
Vue 学习总结(一)
thinkers
08-07 751
vue环境搭建到指令、组件、生命周期等学习总结
Vue全家桶:路由 vue-router
Continue的博客
04-27 429
文章目录1. 什么是路由1.1 概述1.2 后端路由阶段1.1 前端路由阶段2. vue-router2.1 安装2.2 使用2.3 模式2.4 router-link、router-view2.5 动态路由 1. 什么是路由 1.1 概述 路由是网络工程里面的一个术语,它主要是通过互联的网络把信息从源地址传输到目的地址的活动。 路由是决定数据包从来源到目的地的路径,其实本质就是通过路由表映射,决定数据指向。 vue中借用了这个思想,诞生了路由 vue-router 1.2 后端路由阶段 概述: 早期的网站
个人技能点(郎)
木木木森林
08-24 2240
个人技能点1. 熟悉 h5 和 c3 新特性:语义化标签,flex 布局,动画等H5 新特性:2. 熟悉js作用域、原型、事件轮询机制、闭包等原理;js 作用域闭包事件轮询机制原型3. 熟悉 ES6 语法标准 promise,async/await 异步方案,箭头函数等`Promise`思路:generatorasync/awaitpromise 和 async/await 的区别箭头函数4. 了解 ajax 前后台数据交互原理,熟练使用原生 ajax 及 ajax 类库,如: axios;并掌握 json
Vue3如何使用异步组件
weixin_47768980的博客
07-28 2943
Vue3的异步组件减少打包体积进行分包
Vue组件 - 让动态组件存活
weixin_39415598的博客
03-10 222
微信订阅号:Rabbit_svip 【Vue组件 -动态组件 接着上面的例子。 动态组件用<component>标签包着,再加上is属性来判断就能实现。 但动态组件有一个问题(其实也算不上问题),就是每次切换,组件都会重新加载。 先上代码 微信订阅号:Rabbit_svip 效果 微信订阅号:Rabbi...
vue3之异步组件(defineAsyncComponent)
qq_35876316的博客
03-13 1711
Suspense>-- 具有深层异步依赖的组件 -->-- 异步组件加载没成功之前,在 #fallback 插槽中显示 “正在加载中” -->Loading...//或者...-- 主要内容 -->-- 加载中状态 -->正在加载...常常会将 和 、 等组件结合。要保证这些组件都能正常工作,嵌套的顺序非常重要。
vue3的defineAsyncComponent是如何实现异步组件的呢?
qq_36348403的博客
08-13 1078
这篇文章我们将通过debug源码的方式来带你搞清楚defineAsyncComponent是如何实现异步组件的。
vue动态组件保持存活
梦寻汝的博客
01-05 535
保持存活:切换组件后,不重新渲染切换的组件保持切换前(更改文字时)的数据。4、再次切换组件,【组件A的 新数据是更改后的】保持存活;不加eep-alive 则会变回第1张图。
Vue3处理异步加载组件
weixin_50368372的博客
05-12 734
Vue3处理异步加载组件
如何优雅处理异步组件加载Vue 3 的 Suspense 特性
weixin_52648900的博客
08-24 1390
一文很详细的介绍了 vue3 新特性之 Suspense 的使用,尤其是易错点需要注意哦
Vue动态加载异步组件的实现方法与应用场景
Vue动态加载异步组件的方法 Vue动态加载异步组件是指在Vue项目中,通过动态加载异步组件来实现小组件之间的通信和交互。这种方法可以解决传统的iframe跨域问题,并提供了更加灵活和高效的组件加载方式。 背景: 在...
写文章

热门文章

  • Win11 WiFi功能消失解决方法之一 52999
  • 【Spring Boot基础】解决ERROR org.springframework.boot.SpringApplication -- Application run failed报错问题 32655
  • 电脑一直黑屏,但敲击键盘时按键有亮光,问题解决办法之一 11771
  • ubuntu虚拟机VmWare与主机共享文件夹 11099
  • 【未解决】ubuntu系统上安virtualbox虚拟机装win10一路踩坑 8151

最新评论

  • 【RuoYiVuePlus学习】创建Bucket失败,请核对配置信息:[Unable to execute HTTP request: Connect to127.0.0.1:9000 ...解决方法

    qq_38477989: 我照着贴子配置完 还是提示连接被拒绝求指点

  • Win11 WiFi功能消失解决方法之一

    XePmLmXmP: 我是WiFi图标还在,但灰色不能按,重启就行。想找不重启的解决方法。。。表情包

  • 安装SceneBuilder时出现Verify that you have access to that directory报错,解决方法之一

    最清晰的脚印.: https://blog.csdn.net/qq_36361716/article/details/127169653?spm=1001.2101.3001.6650.15&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-15-127169653-blog-129419284.235%5Ev43%5Econtrol&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-15-127169653-blog-129419284.235%5Ev43%5Econtrol&utm_relevant_index=17

  • 【RuoYiVuePlus学习】创建Bucket失败,请核对配置信息:[Unable to execute HTTP request: Connect to127.0.0.1:9000 ...解决方法

    学海无涯 卒: 所以这个部署后也是可以使用的?

  • Win11 WiFi功能消失解决方法之一

    诶嘿,谁占用我名字: 要等多会啊,我等了五分钟了都

最新文章

  • 【RuoYiVuePlus学习】创建Bucket失败,请核对配置信息:[Unable to execute HTTP request: Connect to127.0.0.1:9000 ...解决方法
  • 【经验分享】创建团队编程训练区,发布编程打卡题及考核
  • npm install时卡在sill idealTree buildDeps,安装速度慢,卡着不动
2024年5篇
2023年49篇
2022年33篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

林月明

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

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

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

打赏作者

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

抵扣说明:

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

余额充值

深圳坪山网站建设公司能源网站优化行业三河企业网站优化无锡优化网站重庆专业网站优化设计做搜狗网站优化首页软件个人网站优化方法宜昌本地网站优化要多少钱天下网网站备案对优化的作用丰都县网站seo优化排名许昌seo网站优化有哪些重庆网站优化诚选快忻科技悉心濮阳家居行业网站优化推广方案恩施外包网站优化多少钱企业网站适合做优化吗广州市靠谱的网站优化网站排名优化哪家价格便宜河南360网站推广优化凌云网站优化普陀区谷歌网站优化价格遂川网站优化推广广东专业网站优化快照阳江酒店网站seo优化优质的常州网站优化长安汽车优化系统网站菏泽网站优化与推广网站建设优化及推广济南家居行业网站优化推广方案陕西怎么做网站优化照明网站seo优化专家香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声卫健委通报少年有偿捐血浆16次猝死汪小菲曝离婚始末何赛飞追着代拍打雅江山火三名扑火人员牺牲系谣言男子被猫抓伤后确诊“猫抓病”周杰伦一审败诉网易中国拥有亿元资产的家庭达13.3万户315晚会后胖东来又人满为患了高校汽车撞人致3死16伤 司机系学生张家界的山上“长”满了韩国人?张立群任西安交通大学校长手机成瘾是影响睡眠质量重要因素网友洛杉矶偶遇贾玲“重生之我在北大当嫡校长”单亲妈妈陷入热恋 14岁儿子报警倪萍分享减重40斤方法杨倩无缘巴黎奥运考生莫言也上北大硕士复试名单了许家印被限制高消费奥巴马现身唐宁街 黑色着装引猜测专访95后高颜值猪保姆男孩8年未见母亲被告知被遗忘七年后宇文玥被薅头发捞上岸郑州一火锅店爆改成麻辣烫店西双版纳热带植物园回应蜉蝣大爆发沉迷短剧的人就像掉进了杀猪盘当地回应沈阳致3死车祸车主疑毒驾开除党籍5年后 原水城县长再被查凯特王妃现身!外出购物视频曝光初中生遭15人围殴自卫刺伤3人判无罪事业单位女子向同事水杯投不明物质男子被流浪猫绊倒 投喂者赔24万外国人感慨凌晨的中国很安全路边卖淀粉肠阿姨主动出示声明书胖东来员工每周单休无小长假王树国卸任西安交大校长 师生送别小米汽车超级工厂正式揭幕黑马情侣提车了妈妈回应孩子在校撞护栏坠楼校方回应护栏损坏小学生课间坠楼房客欠租失踪 房东直发愁专家建议不必谈骨泥色变老人退休金被冒领16年 金额超20万西藏招商引资投资者子女可当地高考特朗普无法缴纳4.54亿美元罚金浙江一高校内汽车冲撞行人 多人受伤

深圳坪山网站建设公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化