首页 > 其他分享 >vue2生命周期

vue2生命周期

时间:2024-04-01 15:32:31浏览次数:23  
标签:生命周期 DOM 钩子 实例 vue2 组件 data

什么是声明周期?

生命周期概念是借鉴了软件工程和编程中普遍存在的概念,描述一个实体从开始到结束的整个过程。与植物学的生命周期相似。Vue的生命周期概念可以看作是对生物学生命周期概念的一种抽象借鉴和应用。

生命周期阶段

Vue 实例有一个完整的生命周期,即从创建到销毁的过程,这个过程中会依次经历一系列的钩子函数。

初始化阶段

  1. beforeCreate:

    • vue实例初始化未被调用,目前只是知道this的指向是指向这个vue实例,至于this指向为什么没有调用就知道,大概是vue内置里面有一个强制指向(个人猜测,我没看过源码,我小白看不懂,只是看了一些视频大概猜测)因此实例的 datacomputed propertiesmethods 等还未初始化,这里初始话就是这些函数还没有存到内存中,就是相当于什么都没有的状态,因为还没有被挂在,所以DOM也操作不了,
    • 什么情况会使用这个钩子:需要配置插件,性能追踪,在组件创建之前就决定要不要渲染出来,或者全局状态pinia ,几乎很少用到这个钩子函数。
  2. created:

    • 创建实例后被调用。
    • 这步的时候,data里面的数据已经是响应式的了,也就是说,vue通过Objec.defineProperty进行数据劫持,里面的函数set和get已经可以让数据变成响应式了,与data同级的函数已经可以和data进行互动了
    • 在执行这个钩子函数的时候,模板还没有开始编译,因此还是不能操作DOM,
    • 这个钩子里面经常做网络请求,

挂载阶段

  1. beforeMount:

    • 这个函数也很好理解,,未挂在之前,这个函数调用的时候,虚拟dom就是是render函数已经被调用,并生成了虚拟dom,但是还没有转换成真实DOM(一丁点都没转换到真实DOM ),也就说页面上还是没有数据的,所以,这个钩子函数无法操作真实dom的,几乎不常用
  2. mounted:

    • 这个位置就很特殊,挂载后,因为父组件里面有可能有子组件,所以在mounted执行之前是有一个过程的。
    • 首先,是开始执行父组件的生命周期,执行完beforeMount并在mounted之间,首先是父组件开始由虚拟DOM向真实DOM开始转换,如在转换的时候碰到子组件,先执行子组件里面的生命周期,子组件的真实DOM节点并且插入到父组件完成之后,子组件的mounted才算是完成,然后父组件的mounted完成(完全个人理解)

更新阶段

  1. beforeUpdate:

    • 这个钩子函数是data已经发生变化,虚拟om也发生变化,但是没有对比到真实dom上,在此期间,不可以修改data和组件
  2. updated

    • updated 生命周期钩子确实是在组件的数据变化引起的虚拟 DOM 重新渲染并且改变已经反映到真实 DOM 之后被调用的。此时页面已经渲染了最新的数据,

销毁阶段

  1. beforeDestroy:

    • 实例销毁之前调用。在这一步,实例仍然完全可用。
    • 这是清理定时器或解绑全局事件监听器的好时机。
  2. destroyed:

    • Vue实例销毁后调用。调用后,Vue实例指示的所有东西都会解绑定,所有的事件监听器会被移除,所有的子实例也会被销毁。
    • 通常用于在组件被销毁后执行清理操作。

这些生命周期钩子提供了在不同阶段管理组件的有力手段,比如加载数据、直接操作DOM、清理资源等。理解和合理使用这些生命周期钩子对于开发高效、可维护的Vue应用至关重要。

标签:生命周期,DOM,钩子,实例,vue2,组件,data
From: https://blog.csdn.net/m0_65475272/article/details/137178950

相关文章

  • 【前端面试3+1】07vue2和vue3的区别、vue3响应原理及为什么使用proxy、vue的生命周期
    一、vue2和vue3的区别1.性能优化:        Vue3在性能方面有很大的提升,主要是通过虚拟DOM的优化和响应式系统的改进实现的。虚拟DOM重构:Vue3中对虚拟DOM进行了重构,使得更新算法更加高效,减少了更新时的开销,提升了性能。静态树提升:Vue3可以通过静态树提升技术......
  • 备忘录 3.Vue2,3 父子组件组件传值的方法(1)
    1.简介    在初次接触组件传值时总是忘了其中的细节,我会在这个文章中简单的写一下在vue2,3中父子组件最常用的传值方式,便于我开发中查阅2.Vue2中父子组件传值方法2.1父组件向子组件传值Father.vue<template><div><child-component:parent-messa......
  • K8s Pod亲和性、污点、容忍度、生命周期与健康探测详解(中)
    ......
  • 使用vue2实现在线创建组件的功能
    前言我们使用vue2构建了一个项目,项目有个需求:用户可以在线创建vue组件,创建后的组件可以动态编译,项目无需重新部署,就可以在表单等位置引入使用组件。实现记录引用vue的esm包项目中引入vue的代码,原来是importVuefrom'vue'改为importVuefrom'vue/dist/vue.esm'vue.c......
  • vue2,3拖拽组件
    vue3//[email protected]//dom<template><Draggablev-model="list.data"class="drag-container"><template#item="{element}"><div>{{element.name}}</div>......
  • vue2当中使用svg
    1、引入依赖npminstall  svg-sprite-loader-D2、在src文件夹下新建文件夹存放svg图 3、封装公共svg组件 3、全局注册使用(避免使用时还需要再去引入封装的svg组件) 4、在vue.config.js当中增加svg配置 5、使用用例 ......
  • 11-Vue-生命周期
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>引出生命周期</title><scripttype="text/javascript"src="../js/vue.js"></script></head&......
  • vue实例的data属性,可以在哪些生命周期中获取到
    Vue实例的data属性可以在beforeCreate、created和beforeMount生命周期中获取到。在Vue实例的生命周期中,data属性在不同的阶段有着不同的可访问性:beforeCreate:在实例初始化之后,数据观测(dataobserver)和事件配置之前被调用。在这个阶段,data属性已经可以被访问,但是事件监听器......
  • 环境影响与碳排放生命周期评估应用及案例分析
    生命周期分析(LifeCycleAnalysis,LCA)是评价一个产品系统生命周期整个阶段——从原材料的提取和加工,到产品生产、包装、市场营销、使用、再使用和产品维护,直至再循环和最终废物处置——的环境影响的工具。这种方法被认为是一种“从摇篮到坟墓”的方法。   生命周期......
  • vue的生命周期
    一、什么是生命周期从Vue实例创建、运行、到销毁期间,总是伴随着各种各样的事件,这些事件,统称为生命周期!二、生命周期钩子函数每个Vue实例在被创建时都要经过一系列的初始化过程——例如,需要设置数据监听、编译模板、将实例挂载到DOM并在数据变化时更新DOM等。同时在......