当前位置: 首页 > news >正文

VUE -- 基础知识讲解(三)

【点赞收藏加关注,前端技术不迷路~】

一、vue子组件和父组件创建和挂载顺序

1.创建和挂载顺序:父创建 => 子创建 => 子挂载 => 父挂载

        组件创建的树形递归回溯,创建过程自上而下,挂载过程自下而上。

        parent created => child created => child mounted => parent mounted

2.原因

        Vue创建过程是⼀个递归过程,先创建父组件,有子组件就会创建子组件,因此创建时先有父组件再有子组件;子组件首次创建时会添加mounted钩子到队列,等到patch结束在执行它们,可见子组件的mounted钩子是先进入到队列中的,因此等到patch结束执行这些钩子时也先执行。

3.源码

        1)观察beforeCreated和created钩⼦的处理。(VUE相关源码)(VUE相关源码)

        2)观察beforeMount和mounted钩⼦的处理。(VUE相关源码)

二、组件的缓存与更新

缓存组件使用keep-alive组件,这是⼀个非常常见且有用的优化手段,vue3中keep-alive有比较大的更新。

1.keep-alive的作用与用法

        开发中缓存组件使用keep-alive组件,keep-alive是vue内置组件,keep-alive包裹动态组件component时,会缓存不活动的组件实例,而不是销毁它们,这样在组件切换过程中将状态保留在内存中,防止重复渲染 DOM

<keep-alive>  <component :is="view"></component> 
</keep-alive>
2.使用细节,例如缓存指定/排除、结合router和transition

        结合属性include和exclude可以明确指定缓存哪些组件或排除缓存指定组件。

        vue2是keep-alive包裹router-view。

<keep-alive><router-view v-slot="{ Component }"><component :is="Component"></component></router-view>
</keep-alive>

        vue3中结合vue-router时变化较大,现在需要反过来用router-view包裹keep-alive:

<router-view v-slot="{ Component }"><keep-alive><component :is="Component"></component></keep-alive>
</router-view>
3.组件缓存后更新可以利用activated或者be
http://www.dtcms.com/a/305531.html

相关文章:

  • 鹏哥C语言_82_指针_指针数组
  • 简单线性回归模型原理推导(最小二乘法)和案例解析
  • Linux C:位运算符
  • 【前端】span和div都设置了text-align,为什么对span不起作用
  • python基础语法1,python语法元素(简单易上手的python语法教学)(课后习题)
  • 操作系统- lecture3(进程的定义)
  • LVS (Linux Virtual Server) 解析
  • 微服务消息队列之——RabbitMQ
  • 2019 年 NOI 最后一题题解
  • 智能AI医疗物资/耗材管理系统升级改造方案分析
  • Python自动化测试环境搭建
  • Linux虚拟内存
  • Spring AOP详细解析
  • 基于deepseek的事件穿透分析-风险传导图谱
  • 基于 Hadoop 生态圈的数据仓库实践 —— OLAP 与数据可视化(六)
  • Tomcat线程池、业务线程池与数据库连接池的层级约束关系解析及配置优化
  • 在Trae中使用MoonBit月兔
  • 《Computational principles and challenges in single-cell data integration》
  • Map 集合
  • vue 使用postcss-pxtorem 实现适老化
  • Elasticsearch 基础速成 5 步跑通索引、文档、映射与查询
  • 【php 安装 xdebug】
  • 数学建模——最大最小化模型
  • 关于mysql时间类型和java model的日期类型映射
  • anaconda和Miniconda安装包32位64位皆可,anaconda和Miniconda有什么区别?
  • 【33】C# WinForm入门到精通 ——表格布局器TableLayoutPanel【属性、方法、事件、实例、源码】
  • JetBrains Annotations:从入门到落地,彻底告别 NullPointerException
  • Vue路由钩子完全指南
  • Linux ARM 平台 C 语言操作 Excel 文件的常用库与工具汇总(支持 xls 和 xlsx)
  • 【 建模分析回顾】[MultiOutputClassifier]MAP - Charting Student Math Misunderstandings