11.vue学习笔记(组件生命周期+生命周期应用+动态组件+组件保持存活)

news2025/2/25 15:06:13

文章目录

        • 1.组件生命周期
        • 2.生命周期应用
          • 2.1通过ref获取元素DOM结构
          • 2.2.模拟网络请求渲染数据
        • 3.动态组件
          • 3.1.A,B两个组件
        • 4.组件保持存活(销毁期)

1.组件生命周期
每个Vue组件实例在创建时都需要经历一系列的初始化步骤,比如设置好数据侦听,编译模板,挂载实例到DOM,
以及在数据改变时更新DOM。
在此过程中,它会运行被称为生命周期钩子的函数,让开发者在特定阶段运行自己的代码
有关创建:beforeCreate/created
有关渲染:beforeMount/mounted
有关更新:beforeUpdate/updated
有关卸载:beforeUnmount/unmounted
作用:在特定时期运行自己的代码

在这里插入图片描述

<template>
  <h3>组件的生命周期</h3>
  <button @click="updateHandle">更新事件</button>
  <p>{{ msg }}</p>
</template>
<script>
export default{
  data(){
    return{
      msg:"更新之前"
    }
  },
  methods:{
    updateHandle(){
      this.msg = "更新之后"
    }
  },
  /** 
   * 生命周期函数:
   *    创建期:beforeCreate(组件即将创建)/created(组件已经创建完成,但还没显示)
   *    挂载期:beforeMount(准备渲染)/mounted(组建渲染完成:页面可以看到)
   *    更新期:beforeUpdate(更新前)/updated(更新后)
   *    销毁期:beforeUnmount(组件销毁前)/unmounted(组件销毁后)
   */
  beforeCreate(){
    console.log("组件创建之前");
  },
  created(){
    console.log("组件创建之后");
  },
  beforeMount(){
    console.log("组件渲染之前");
  },
  mounted(){
    console.log("组件渲染之后");
  },
  beforeUpdate(){
    console.log("组件更新之前");
  },
  updated(){
    console.log("组件更新之后");
  },
  beforeUnmount(){
    console.log("组件销毁之前");
  },
  unmounted(){
    console.log("组件销毁之后");
  }
  
}
</script>
2.生命周期应用
常见应用场景:
	通过ref获取元素DOM结构
	模拟网络请求渲染数据
2.1通过ref获取元素DOM结构

在这里插入图片描述

2.2.模拟网络请求渲染数据

在这里插入图片描述

3.动态组件
有些场景会需要在两个组件间来回切换,比如Tab界面
3.1.A,B两个组件

在这里插入图片描述

<template>
  <component :is="tabComponent"></component>
  <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>
4.组件保持存活(销毁期)
当使用<component :is="……"></component>来在多个组件间作切换时,被切换掉的组件会被卸载.

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

我们可以通过使用<keep-alive>组件强制被切换掉的组件仍然保持存活状态

在这里插入图片描述

<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>
_____________________________________________________________________________________________
<template>

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

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

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

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

相关文章

Swagger3 使用详解

Swagger3 使用详解 一、简介1 引入依赖2 开启注解3 增加一个测试接口4 启动服务报错1.5 重新启动6 打开地址&#xff1a;http://localhost:8093/swagger-ui/index.html 二、Swagger的注解1.注解Api和ApiOperation2.注解ApiModel和ApiModelProperty3.注解ApiImplicitParams和Api…

五大跨平台桌面应用开发框架:Electron、Tauri、Flutter等

hello&#xff0c;我是贝格前端工场&#xff0c;本次介绍跨平台开发的框架&#xff0c;欢迎大家评论、点赞。 一、什么是跨平台桌面应用开发框架 跨平台桌面应用开发框架是一种工具或框架&#xff0c;它允许开发者使用一种统一的代码库或语言来创建能够在多个操作系统上运行的…

开源大模型LLM大爆发,数据竞赛已开启!如何使用FuseLLM实现大语言模型的知识融合?

开源大模型LLM大爆发&#xff0c;数据竞赛已开启&#xff01;如何使用FuseLLM实现大语言模型的知识融合&#xff1f; 现在大多数人都知道LLM是什么&#xff0c;以及可以做什么。 人们讨论着它的优缺点&#xff0c;畅想着它的未来&#xff0c; 向往着真正的AGI&#xff0c;又有…

蓝桥杯备赛第一篇(数论)

数论 1.判断质数 注意i 的终止条件本来是 i < s q r t ( n u m ) i<sqrt(num)i<sqrt(num),但是计算开方太慢了&#xff0c;所以用 i ∗ i < n u m &#xff0c;但是i ∗ i 容易爆int&#xff0c;所以最终改成 i < n u m / i &#xff0c;后面的其他 代码也会…

5000字深度好文!WMS仓库管理系统的应用场景有哪些?

WMS仓库管理系统提供了全面的仓库管理功能&#xff0c;从物料管理到日常库存调整&#xff0c;从仓库拣选到成品出库。那么仓库管理系统都有哪些功能呢&#xff1f;仓库管理系统的应用场景有哪些呢&#xff1f;企业又该如何使用仓库管理系统呢&#xff1f; 这篇就结合图示零代码…

「优选算法刷题」:矩阵区域和

一、题目 给你一个 m x n 的矩阵 mat 和一个整数 k &#xff0c;请你返回一个矩阵 answer &#xff0c;其中每个 answer[i][j] 是所有满足下述条件的元素 mat[r][c] 的和&#xff1a; i - k < r < i k, j - k < c < j k 且(r, c) 在矩阵内。 示例 1&#xff1…

大数据构建知识图谱:从技术到实战的完整指南

文章目录 大数据构建知识图谱&#xff1a;从技术到实战的完整指南一、概述二、知识图谱的基础理论定义与分类核心组成历史与发展 三、知识获取与预处理数据源选择数据清洗实体识别 四、知识表示方法知识表示模型RDFOWL属性图模型 本体构建关系提取与表示 五、知识图谱构建技术图…

unity shaderGraph实例-物体线框显示

文章目录 本项目基于URP实现一&#xff0c;读取UV网格&#xff0c;由自定义shader实现效果优缺点效果展示模型准备整体结构各区域内容区域1区域2区域3区域4shader属性颜色属性材质属性后处理 实现二&#xff0c;直接使用纹理&#xff0c;使用默认shader实现优缺点贴图准备材质准…

开源大数据集群部署(十二)Ranger 集成 hive

作者&#xff1a;櫰木 1、解压安装 在hd1.dtstack.com主机上执行&#xff08;一般选择hiveserver2节点&#xff09; 解压ranger-2.3.0-hive-plugin.tar.gz [roothd1.dtstack.com software]#tar -zxvf ranger-2.3.0-hive-plugin.tar.gz修改install.properties配置 [roothd1…

Python算法题集_子集

Python算法题集_子集 题78&#xff1a;子集1. 示例说明2. 题目解析- 题意分解- 优化思路- 测量工具 3. 代码展开1) 标准求解【递归】2) 改进版一【双层下标循环】3) 改进版二【双层枚举循环】4) 改进版三【双层下标循环位运算】5) 改进版四【单行双层循环位运算】6) 改进版五【…

C#区域医院云LIS信息管理系统源码 标本管理、两癌筛查、数据分析、试剂管理

目录 ​编辑 区域医院云LIS系统功能亮点&#xff1a; 云LIS系统功能&#xff1a; 一、 基础管理 二、 前处理&#xff08;实验室&#xff09; 三、 标本处理 四、 样本检验 五、 统计报表 六、 质控管理 七、 基本工作流程 区域LIS系统特点&#xff1…

mapbox高德地图与相机

高德地图与相机 演示效果引入 CDN 链接地图显示 创建地图实例定义地图数据源配置地图图层 设置地图样式实现代码 1. 演示效果 本案例使用Mapbox GL JavaScript库创建高德地图。 2. 引入 CDN 链接 <script src"https://api.mapbox.com/mapbox-gl-js/v2.12.0/mapbox-gl.j…

华为算法题 go语言或者python

1 给定一个整数数组 nums 和一个整数目标值 target&#xff0c;请你在该数组中找出 和为目标值 target 的那 两个 整数&#xff0c;并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是&#xff0c;数组中同一个元素在答案里不能重复出现。 你可以按任意顺序返…

端侧显著性检测新高度,OPPO提出面向真实场景的PSUNet

https://arxiv.org/abs/2312.07100 在高分辨率场景下&#xff0c;现有的显著目标检测方法难以同时满足快速推理和准确结果的要求。它们受到用于高分辨率图像的公共数据集和高效网络模块的质量的限制。 为了缓解这些问题&#xff0c;我们构建一个显著对象匹配数据集HRSON和一个…

Windows已经安装了QT 6.3.0,如何再安装一个QT 5.12

要在Windows上安装Qt 5.12&#xff0c;您可以按照以下步骤操作&#xff1a; 下载Qt 5.12&#xff1a;访问Qt官方网站或其他可信赖的来源&#xff0c;下载Qt 5.12的安装包。 下载安装地址 下载安装详细教程 安装问题点 qt安装时“Error during installation process(qt.tools…

蒋勤勤48岁亮相,新穿法惊艳全场:上商务下夜店。

♥ 为方便您进行讨论和分享&#xff0c;同时也为能带给您不一样的参与感。请您在阅读本文之前&#xff0c;点击一下“关注”&#xff0c;非常感谢您的支持&#xff01; 文 |猴哥聊娱乐 编 辑|徐 婷 校 对|侯欢庭 蒋勤勤与陈建斌的恩爱典范&#xff0c;娱乐圈中的爱情佳话。虽…

2024年首个iOS AI病毒来了!偷人脸照片,转银行卡余额...

目录 这个病毒如何感染用户手机&#xff1f; 这个AI病毒有哪些危害特征&#xff1f; 2023年有个类似的病毒出现 银行和个人怎么防御AI病毒&#xff1f; 针对金融机构 针对个人用户 2024年2月15日&#xff0c;国外安全公司Group-IB宣布&#xff0c;发现一个名为“GoldPickaxe”的…

初谈软件工程(一)

我就读于兰州交通大学的软件工程专业。虽然在全国众多的985、211高校中&#xff0c;兰州交通大学可能并不显眼&#xff0c;似乎未能跻身这些所谓的“顶尖”行列就意味着不被认可。然而&#xff0c;在甘肃省的教育领域中&#xff0c;它无疑是一座璀璨的明珠&#xff0c;名列前茅…

Airflow【实践 01】Airflow官网+自测源代码举例(简化安装+官方及自测python代码)

Airflow官网自测源代码举例 1.准备1.1 安装1.2 查询DAG目录 2.官方3.自测4.总结 官方网站地址&#xff1a; https://airflow.apache.org/docs/apache-airflow/2.7.2/&#xff0c;本文是基于 2.7.2版本进行的说明。 1.准备 1.1 安装 上一篇的 Quick Start 有详细的安装过程&…

经营分析到底要做什么?

​做经营分析&#xff0c;不是只看数据这么简单&#xff0c;我们要从目标-分析-决策-预警&#xff0c;全流程实现。 基于数据中台底座&#xff0c;实现从制定战略目标到执行落地的数据应用闭环。主要从四个维度来做&#xff1a; 第一步&#xff0c;就是基于预算管理进行战略目…