Vue组件生命周期深度剖析:从创建到销毁的八大钩子实战指南

在这里插入图片描述

系列文章目录

  • Vue核心指令解析:探索MVVM与数据操作之美

文章目录

  • 系列文章目录
  • 前言
  • 一、Vue生命周期是什么?
  • 二、钩子函数讲解
    • 1. beforeCreate( 创建前 )
    • 2. created ( 创建后 )
    • 3. beforeMount(挂载前)
    • 4. mounted(挂载后)
    • 5. beforeUpdate(更新前)
    • 6. updated(更新后)
    • 7. beforeDestroy(销毁前)
    • 8. destroyed(销毁后)
    • 9. 代码实现钩子函数


前言

    本文将详细介绍Vue组件的生命周期,包括其各个阶段的含义和作用,以及每个阶段所对应的钩子函数的使用方法。我们将逐一解析beforeCreated、created、beforeMount、mounted、beforeUpdate、updated、beforeDestroy和destroyed这八大钩子函数,并通过一个简单的实际代码案例展示它们的具体应用。


一、Vue生命周期是什么?

Vue实例有一个完整的 生命周期,也就是说从开始创建、初始化数据、编译模板、挂载DOM、渲染-更新-渲染、销毁等一系列过程,我们称为Vue 实例的生命周期,钩子 就是在某个阶段给你一个做某些处理的机会。

生命周期图

在这里插入图片描述

二、钩子函数讲解

1. beforeCreate( 创建前 )

在实例初始化之后,数据观测(data observer)和事件配置(event/watcher) 之前被调用,此时组件的选项对象还未创建,el 和 data 并未初始化,因此无法访问methods, data, computed的方法和数据。

2. created ( 创建后 )

实例已经创建完成之后被调用,在这一步,实例已完成以下配置:数据观测(data observer)、属性和方法的运算,watch/event事件回调,完成了data 数据的初始化,el没有。 然而,挂载阶段还没有开始, $el属性目前不可见。
这是一个常用的生命周期,因为你可以调用methods中的方法,改变data中的数据,并且修改可以通过vue的响应式绑定体现在页面上,获取computed中的计算属性等等,通常我们可以在这里对实例进行
预处理。

3. beforeMount(挂载前)

挂在开始之前被调用,相关的render函数首次被调用(虚拟DOM),实例已完成以下的配置: 编译模板,把data里面的数据和模板生成html,完成了el和data 初始化,注意此时还没有挂载html到页面上。

4. mounted(挂载后)

挂载完成,也就是模板中的HTML 渲染到HTML页面 中,此时一般可以做一些ajax操作,mounted只会执行一次。

5. beforeUpdate(更新前)

在数据更新之前被调用,发生在虚拟DOM重新渲染和打补丁之前,可以在该钩子中进一步地更改状态,不会触发附加地重渲染过程

6. updated(更新后)

在由于数据更改导致的虚拟DOM重新渲染和打补丁时会调用,调用时,组件DOM已经更新,所以可以执行依赖于DOM的操作。在大多数情况下,应该避免在此期间更改状态,因为这可能会导致更新无限循环,该钩子在服务器端渲染期间不被调用

7. beforeDestroy(销毁前)

在实例销毁之前调用,实例仍然完全可用

  1. 这一步还可以用this来获取实例,
  2. 一般在这一步做一些重置的操作,比如清除掉组件中的定时器 和 监听的dom事件

8. destroyed(销毁后)

在实例销毁之后调用,调用后,所有的事件监听器会被移出,所有的子实例也会被销毁,该钩子在服务器端渲染期间不被调用。

9. 代码实现钩子函数

<template>
   <div>
     <h1>生命周期、钩子函数</h1>
      <h1>{{num}}</h1>
      <button @click="btn">增加</button>
<!--      <button @click="btn">减少</button>  0-->
      <button @click="num+=1">增加</button>
   </div>
</template>

<script>
export default {
  name: "test",
  data(){
    return{
      num:0
    }
  },
  methods:{
      btn(){

        if(this.num < 15){
          this.num += 1
        }else {
          alert('不能再加了')
          this.num += 0
        }

      }
  },
  beforeCreate() {
    alert('创建之前')
  },
  created() {
    alert('创建之后')
  },
  beforeMount() {
    alert('挂载之前')
  },
  mounted() {
    alert('挂载之后')
      this.num = 10
  },
  beforeUpdate() {
    alert('修改之前')
  },
  updated() {
    alert('修改之后')
  }


}
</script>

<style scoped>

</style>



在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

深度学习之数据集 Dataset总结

数据集 Dataset MindSpore提供了基于Pipeline的数据引擎&#xff0c;通过Dataset和Transforms实现高效的数据预处理。它提供了内置的文本、图像、音频等数据集加载接口&#xff0c;并提供了自定义数据集加载接口。此外&#xff0c;MindSpore的领域开发库也提供了大量的预加载数…

[leetcode]the-skyline-problem 天际线问题

. - 力扣&#xff08;LeetCode&#xff09; class Solution { public:vector<vector<int>> getSkyline(vector<vector<int>>& buildings) {auto cmp [](const pair<int, int>& a, const pair<int, int>& b) -> bool { ret…

GPT-5:博士级智能的破晓,人工智能的新里程碑

随着科技的飞速发展&#xff0c;人工智能领域再次迎来了一场革命性的突破。备受瞩目的新一代大语言模型GPT-5即将在一年半之后发布&#xff0c;这一创新不仅将再次刷新人们对人工智能的认知&#xff0c;更有可能在多个领域展现出超越人类博士级智能的卓越能力。本文将对GPT-5的…

【技术解码】百数SRM:如何助力企业快速优化供应链管理?

SRM应用是企业优化供应链管理的重要工具&#xff0c;它帮助企业全面管理供应商关系&#xff0c;从评估、选择到协同合作和绩效监控&#xff0c;确保供应链的稳定性和效率。 对于企业来说&#xff0c;通过全面管理供应商关系&#xff0c;可以降低采购风险&#xff0c;提升产品质…

秋招突击——6/25——复习{单调队列优化——最大子序列和,单调队列优化——修剪草坪}——新作{搜索插入位置}

文章目录 引言复习单调队列优化——最大子序列和个人实现 单调队列优化——修建草坪个人实现参考实现 新作搜搜插入位置个人实现参考实现 总结 引言 明天要去上海了&#xff0c;今天要打印很多东西&#xff0c;准备很多材料&#xff0c;包括请假&#xff0c;所以上午没有时间刷…

领夹麦买哪个牌子的好用点?一文看懂领夹麦克风什么牌子的好

自媒体时代的兴起&#xff0c;给了普通人很多的机会&#xff0c;尤其短视频的兴起更是让无数热情&#xff0c;有创作之心的人跃跃欲试。于是乎越来越多的人纷纷拿起了手机到各个平台去展示自己的才华&#xff0c;或者通过vlog记录分享自己的简单生活。 不过在分享和创作的输出时…

电脑屏幕花屏怎么办?5个方法解决问题!

“我刚刚打开电脑就发现我的电脑屏幕出现了花屏的情况。这让我很困惑&#xff0c;我应该怎么解决这个问题呢&#xff1f;求帮助。” 在这个数字时代的浪潮中&#xff0c;电脑早已成为我们生活中不可或缺的一部分。然而&#xff0c;当你正沉浸在紧张的游戏对战中&#xff0c;或是…

第七届IAIC(成都)国际医美产业大会在蓉召开

四川省人民医院新丽美获“中国整形美容协会医疗救助与修复基金-成都市整形修复定点医院”“‘放心美 医无忧’全过程保障示范医院”两块授牌 2024年6月24日&#xff0c;第七届IAIC&#xff08;成都&#xff09;国际医美产业大会暨“医美之都”高峰会议省医院新丽美整形修复基地…

龙芯CPU架构上使用向日葵远程工具

原文链接&#xff1a;龙芯CPU架构上使用向日葵远程工具 Hello&#xff0c;大家好啊&#xff01;今天给大家带来一篇在龙芯CPU上使用向日葵远程控制软件的文章。向日葵是一款强大的远程控制软件&#xff0c;能够帮助用户轻松地实现远程桌面访问和控制。本文将详细介绍如何在龙芯…

Android 11 ,默认授予预置应用/APK 需要的权限,解决permission denied for window type 2003 问题。

写这篇文章的原因是解决了一个APP闪退的问题&#xff0c;闪退的原因是插拔U盘时&#xff0c;注册的广播接收者接收到广播需要弹出一个Dialog询问是否需要打开U盘&#xff0c;这个Dialog设置的是系统级别悬浮窗&#xff0c;没有这个权限&#xff0c;报错导致闪退&#xff0c;下面…

Java-拼接字符串数组(String.join()方法)

问题引入 刷算法题lc2288的时候遇见的一个小细节&#xff0c;记录一下&#xff0c;有兴趣的朋友可以做一下&#xff0c;练习一下哈哈~ 此题需要使用大家都比较熟悉的split方法将句子按照空格拆分为字符串数组。 然后再在数组中对每一个字符串操作&#xff0c;操作完成后要求…

气膜体育馆的使用年限有多少—轻空间

气膜体育馆作为一种新兴的建筑形式&#xff0c;因其独特的结构和功能而备受青睐。它不仅在建设速度、成本控制和环保方面具有显著优势&#xff0c;还在使用年限上展现出良好的性能。轻空间将探讨气膜体育馆的使用年限及其影响因素。 气膜体育馆的基本结构 气膜体育馆主要由膜材…

在数字化营销中如何提高用户参与度和留存率

在当今数字化时代&#xff0c;如何有效地提高用户参与度和留存率成为企业营销的关键课题。蚓链在此为您揭示可采取的一系列重要措施。 在提高用户参与度方面&#xff1a; 其一&#xff0c;通过深入的数据分析洞察用户偏好与行为模式&#xff0c;进而提供高度个性化的内容、精…

录制视频怎么操作?手把手教会你!

在这个互联网科技高速发展的时代&#xff0c;录制视频已经成为了人们生活中一个不可或缺的技能。无论是记录游戏精彩瞬间、制作教程、分享生活趣事&#xff0c;还是进行在线教学&#xff0c;录制视频都是一种非常直观有效的方式。可是录制视频怎么操作呢&#xff1f;本文将介绍…

运行ChatGLM大模型时,遇到的各种报错信息及解决方法

①IMPORTANT: You are using gradio version 3.49.0, however version 4.29.0 is available, please upgrade 原因分析&#xff1a; 因为使用的gradio版本过高&#xff0c;使用较低版本。 pip install gradio3.49.0 会有提示IMPORTANT: You are using gradio version 3.49.…

Javac编译器

Java语言的编译器是一段不确定的操作过程&#xff0c;可能是讲Java文件转变为class文件的过程&#xff0c;也可能是指虚拟机的后端编译&#xff0c;讲字节码转换为机器码的过程&#xff0c;还肯是静态提前编译器直接讲Java文件编译为本地机器代码的过程。 前端编译器&#xff…

DevExpress WPF中文教程:Grid - 如何排序、分组、过滤数据(设计时)?

DevExpress WPF拥有120个控件和库&#xff0c;将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpress WPF能创建有着强大互动功能的XAML基础应用程序&#xff0c;这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。 无论是Office办公软件…

php反序列化漏洞简介

目录 php序列化和反序列化简介 序列化 反序列化 类中定义的属性 序列化实例 反序列化实例 反序列化漏洞 序列化返回的字符串格式 魔术方法和反序列化利用 绕过wakeup 靶场实战 修复方法 php序列化和反序列化简介 序列化 将对象状态转换为可保持或可传输的格式的…

构建家庭NAS之三:在TrueNAS SCALE上安装qBittorrent

本系列文章索引&#xff1a; 构建家庭NAS之一&#xff1a;用途和软硬件选型 构建家庭NAS之二&#xff1a;TrueNAS Scale规划、安装与配置 构建家庭NAS之三&#xff1a;在TrueNAS SCALE上安装qBittorrent 大部分家庭NAS用户应该都会装一个下载工具。本篇以qBittorrent为例&…

如何使得Macos的剪切板感知fileURL并当fileURL被执行paste 动作时 回调到某个监听的函数 从而来填充file content

问题及尝试&#xff1a; 我在做一个跨平台文件拷贝的功能&#xff0c;文件可能是从其他操作系统比如Linux 或者Windows 拷贝到Macos上&#xff0c; 但是我试过所有可以hook NSPasteboard的方法&#xff0c;确实没有找到可以监听macos 剪切板的方法&#xff0c;因为fileURL 确实…