【VUE】vuejs2.0 vue实例的生命周期

Vue3.0生命周期钩子(包含:Vue 2.0 和 Vue 3.0) 每个应用程序实例在创建时都有一系列的初始化步骤。例如,创建数据绑定、编译模板、将实例挂载到 DOM 并在数据变化时触发 DOM 更新、销毁实例等。在这个过程中会运行一些叫做生命周期钩子的函数,通过这些钩子函数可以定义业务逻辑。Vue3.0 是兼容 Vue2.x 版本的也就是说我们再日常工作中可以在 Vue3 中使用 Vue2.x 的相关语法。Vue 3.0 带来了许多新特性和改进,其中包括更强大的组合API。与基于选项的 API 相比,组合 API 中的生命周期钩子函数也发生了变化。 阅读详情

每个 Vue 实例在被创建之前都要经过一系列的初始化过程。

例如,实例需要配置数据观测(data observer)、编译模版、挂载实例到 DOM ,然后在数据变化时更新 DOM 。

下图展示的就是一个vue实例对象的生命周期。
在这里插入图片描述

从图上我们可以看到vue在生命周期中有这些状态,

beforeCreate,created,beforeMount,mounted,beforeUpdate,updated,beforeDestroy,destroyed

Vue在实例化的过程中,会调用这些生命周期的钩子,给我们提供了执行自定义逻辑的机会。

那么,在这些vue钩子中,vue实例到底执行了那些操作,我们先看下面执行的例子

var vm = new Vue({
    el: "#container",
    data: {
        test : 'hello world'
    },
    beforeCreate: function(){
        console.log(this);
        showData('创建vue实例前',this);
    },
    created: function(){
        showData('创建vue实例后',this);
    },
    beforeMount:function(){
        showData('挂载到dom前',this);
    },
    mounted: function(){
        showData('挂载到dom后',this);
    },
    beforeUpdate:function(){
        showData('数据变化更新前',this);
    },
    updated:function(){
        showData('数据变化更新后',this);
    },
    beforeDestroy:function(){
        vm.test ="3333";
        showData('vue实例销毁前',this);
    },
    destroyed:function(){
        showData('vue实例销毁后',this);
    }

});

function realDom(){
    console.log('真实dom结构:' + document.getElementById('container').innerHTML);
}
function showData(process,obj){
    console.log(process);
     console.log('data 数据:' + obj.test)
     console.log('挂载的对象:')
     console.log(obj.$el)
     realDom();
     console.log('------------------')
     console.log('------------------')
}

在这里插入图片描述
我们可以看到,vue对象初始化过程中,会执行到beforeCreate,created,beforeMount,mounted 这几个钩子的内容

beforeCreate :数据还没有监听,没有绑定到vue对象实例,同时也没有挂载对象

created :数据已经绑定到了对象实例,但是还没有挂载对象

beforeMount: 模板已经编译好了,根据数据和模板已经生成了对应的元素对象,将数据对象关联到了对象的$el属性,$el属性是一个HTMLElement对象,

也就是这个阶段,vue实例通过原生的createElement等方法来创建这个html片段,准备注入到我们vue实例指明的el属性所对应的挂载点

mounted:将$el的内容挂载到了el,相当于我们在jquery执行了$(el).html($el),生成页面上真正的dom,上面我们就会发现dom的元素和我们$el的元素是一致的。在此之后,我们能够用方法来获取到el元素下的dom对象,并进 行各种操作

当我们的data发生改变时,会调用beforeUpdate和updated方法
在这里插入图片描述

beforeUpdate :数据更新到dom之前,我们可以看到$el对象已经修改,但是我们页面上dom的数据还没有发生改变

updated: dom结构会通过虚拟dom的原则,找到需要更新页面dom结构的最小路径,将改变更新到dom上面,完成更新

实例的销毁
在这里插入图片描述
beforeDestroy,destroed :实例的销毁,vue实例还是存在的,只是解绑了事件的监听还有watcher对象数据与view的绑定,即数据驱动

Vue2.0生命周期详细的描述 生命周期是什么? 在官网中我们可以看到这一段定义:每一个vue实例从创建到销毁的过程,就是这个vue实例的生命周期。在这个过程中,他经历了从开始创建、初始化数据、编译模板、挂载Dom、渲染→更新→渲染、卸载等一系列过程。 表述 了解之前,我们先贴上一张翻译过后的生命周期图,从图上,我们再一步一步来理解vue生命周期,注:如想要原图就去官网可以找到 详细描述 new Vue()实例化一个vue实例,然后init初始化event 和 lifecycle, 其实这个过程中分别调用了3个初... 阅读详情

相关推荐

vue2.0生命周期钩子函数

vue2.0生命周期钩子函数

qq_54598736的博客 817

零基础入门JavaWeb——Vue的生命周期

前端技术学习

星霖的博客 334

逆向实战:基于内存态匿名段分析的 DexProtector 检测绕过策略

本文深入探讨了针对DexProtector加固方案的Frida检测绕过策略。通过分析运行时动态加载到匿名内存段的核心检测逻辑,提出了一套基于内存态分析、定位并转储匿名可执行段,进而通过精准Hook与“等式化替换”等技术实现稳定绕过的实战方法。该方法不仅适用于DexProtector,也对采用类似内存隐藏技术的加固方案具有参考价值。

ik678901的博客 512

java 实例的生命周期_[Java教程]Vue实例生命周期

[Java教程]Vue实例生命周期0 2017-08-15 19:00:09前面的话Vue实例在创建时有一系列的初始化步骤,例如建立数据观察,编译模板,创建数据绑定等。在此过程中,我们可以通过一些定义好的生命周期钩子函数来运行业务逻辑。本文将详细介绍Vue实例的生命周期图示下图是Vue实例生命周期的图示解释接下来,根据提供的生命周期钩子,对Vue实例各个阶段的情况进行详细说明【bef...

weixin_34864191的博客 164

值得苦练的100道Python经典练手题(全网最全,附详细答案,建议收藏)

这100道Python练习题涵盖了从基础语法到高级算法、从数据库操作到Web开发的各个方面,是备考数据库系统工程师的绝佳素材。建议按照章节顺序逐一练习,遇到难点可反复钻研,真正掌握每一道题背后的知识点。通过这些练习,不仅能提升Python编程能力,还能加深对数据库系统原理的理解,为考试和实际工作打下坚实基础。

yue_yun_的博客 9380

雷电模拟器安装面具环境并过软件检测系列(看这一篇就够了!)

雷电模拟器安装面具环境并过基本软件的环境检测

qq_45059975的博客 6万+

11、Vue的生命周期

先自我介绍一下,小编13年上师交大毕业,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。深知大多数初中级java工程师,想要升技能,往往是需要自己摸索成长或是报班学习,但对于培训机构动则近万元的学费,着实压力不小。自己不成体系的自学效率很低又漫长,而且容易碰到天花板技术停止不前。因此我收集了一份《java开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦。vue工程项目不支持。...

一直在水些技术小文 385

对比学习损失函数避坑指南:为什么你的自监督模型不收敛?

本文深入剖析对比学习损失函数中的关键陷阱,揭示自监督模型不收敛的根本原因。通过分析温度系数选择、负样本采样策略和特征归一化等核心因素,提供实用解决方案。实验数据表明,正确设置温度系数τ(建议0.07起)可提升30%性能,而MoCo风格的负样本队列比SimCLR方案在小批量时准确率高6-8%。

nokia的博客 922

vue父子组件使用时遇到的一个问题

子组件一定要写在父组件之前,例如: //子vue,这里遇到一个坑,那就是子vue一定要写在父vue前面,不然会报错。 Vue.component('todo-item', { template: $("#languageList").html() }); //使用Vue渲染模板 var vue = new Vue({ el: "#vueContain...

160

C语言实现惯导更新算法(机械编排)

四元数可用于描述刚体转动或姿态变换,与方向余弦阵相比,表达简洁。四元数是一个包含四个元素的列向量,列向量的第一个元素表示刚体围绕旋转轴转过的角度大小,其余3个元素代表了旋转轴的方向。

十八与她的博客 1730

芒果YOLO11改进44:主干Backbone篇之MobileViT::结合最新 ICLR2022 顶会|轻量通用的MobileViT结构(一)Transformer,轻量级、通用且移动友好的视觉转换

MobileViT::结合最新 ICLR2022 顶会|轻量通用的MobileViT结构(一)Transformer,轻量级、通用且移动友好的视觉转换

包括YOLOv5、YOLOv7、YOLOv8等模型改进 369

Vue中的生命周期

https://segmentfault.com/a/1190000011381906   vue里的生命周期是什么? vue实例从创建到销毁的过程称之为vue的生命周期 vue的生命周期各阶段都做了什么? beforeCreate 实例创建前:这个阶段实例的data、methods是读不到的created 实例创建后:这个阶段已经完成了数据观测(data observer),属性和...

weixin_38098192的博客 5375

数据分析案例-2024 年全电动汽车数据集可视化分析

本数据集来源于Kaggle,原始数据集共有177866条数据,17个变量。该数据集显示了目前通过华盛顿州许可部 (DOL) 注册的电池电动汽车 (BEV) 和插电式混合动力电动汽车 (PHEV)。电池电动汽车 (BEV) 是一种全电动汽车,使用一个或多个电池来存储电能,为电机提供动力,并通过将车辆插入电源进行充电。插电式混合动力汽车 (PHEV) 是一种使用一个或多个电池为电动机提供动力的车辆;使用另一种燃料,例如汽油或柴油,为内燃机或其他推进源提供动力;并通过将车辆插入电源来充电。

m0_64336780的博客 1万+

vuejs2.0 vue实例的生命周期

转自:https://www.cnblogs.com/caizhenbo/p/6418291.html vuejs2.0 vue实例的生命周期 每个 Vue 实例在被创建之前都要经过一系列的初始化过程。例如,实例需要配置数据观测(data observer)、编译模版、挂载实例到 DOM ,然后在数据变化时更新 DOM 。下图展示的就是一个vue实例对象的生命周期。  

ylhsuper的博客 367

基于YOLOv8/YOLOv7/YOLOv6/YOLOv5的水果识别系统(Python+PySide6界面+训练代码)

本文详细介绍了基于YOLO系列目标检测算法(包括YOLOv5、YOLOv6、YOLOv7和YOLOv8)的水果识别系统的设计与实现。系统采用Python语言开发,结合PySide6构建用户界面,实现了从数据准备、模型训练到部署应用的全流程。本文将提供完整的代码实现、详细的训练过程分析以及性能对比实验,并给出推荐的数据集资源。该系统可以准确识别多种水果类型,为智能农业、自动售货、食品加工等领域提供技术支持。

YOLO 563

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

视频教程-VueJS2.0前端框架/全球排名第一-Vue

VueJS2.0前端框架/全球排名第一 云知梦创始人,国际架构师,11年互联...

weixin_30522425的博客 527

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

vue2.0生命周期—码虫

1.下面是我对生命周期的一些理解 首先我们先看一下Vue生命周期图。 2.它可以分为八个阶段 钩子函数 函数描述 beforeCreate 组件实例刚被创建,组件属性计算之前,如data属性等。 created 组件实例创建完成,属性已绑定,但DOM还未生成,$el属性还不存在。 beforeMount 模板编译 | 挂载之前。 mounted 模板编译 |...

码虫带你飞 4423

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Vue2.0和Vue3.0的生命周期有什么区别?

此外,Vue3.0中的生命周期函数可以多次调用执行,提供了更大的灵活性。Vue2.0:在Vue2.0中,生命周期钩子作为Vue实例的选项进行定义,通过this关键字可以访问到Vue实例的属性和方法。综上所述,Vue2.0和Vue3.0在生命周期方面的主要区别在于钩子的数量、命名以及使用方式。Vue3.0通过引入组合式API和调整生命周期钩子的命名及行为,提供了更加灵活和强大的代码组织能力。Vue2.0和Vue3.0的生命周期存在一些显著的区别,主要体现在生命周期钩子的数量、命名以及使用方式上。

王铁柱666的博客 797

Vue2.0学习——生命周期

学习了Vue2.0,但对Vue2.0生命周期一直不是很理解,今天来梳理一下。 首先上图: 可以看到分为:beforeCreate在实例初始化之后,数据观测(data observer) 和 event/watcher 事件配置之前被调用。 也就是说现在还不能使用datacreated实例创建完成,属性也已经绑定,但是dom还未生成 实例已经创建完成之后被调用。在这一步,实例已完成以下的配

q874724218的博客 914

vue生命周期及vue1.0\vue2.0\vue3.0生命周期的变化与区别

但是原先生成的dom元素还存在,可以这么理解,执行了destroy操作,后续就不再受vue控制了。咱们在chrome浏览器里打开,F12看console就能发现beforecreated:el 和 data 并未初始化created:完成了 data 数据的初始化,el没有beforeMount:完成了 el 和 data 初始化mounted :完成挂载。另外在标红处,我们能发现el还是 {{message}},这里就是应用的 Virtual DOM(虚拟Dom)技术,先把坑占住了。

qq_38886284的博客 329

vue3.0和vue2.0生命周期的理解?

Vue的生命周期就是vue实例从创建到销毁的全过程,也就是new Vue() 开始就是vue生命周期的开始。Vue 实例有⼀个完整的⽣命周期,也就是从开始创建、初始化数据、编译模版、挂载Dom -> 渲染、更新 -> 渲染、卸载 等⼀系列过程,称这是Vue的⽣命周期。钩子函数是Vue生命周期中每个阶段对外开放让程序员操作Vue的接口。

weixin_66557048的博客 424

Vue2.0——组件生命周期

文章目录1.虚拟dom2.八大生命周期 生命周期钩子的 this 上下文指向调用它的 Vue 实例(VueComponent) 1.虚拟dom 真实dom : 原生dom - - - 按照dom原生操作顺序实时更新界面(造成性能低) 虚拟dom : vNode 和dom对象一致 , 等待一系列操作完成之后 一次性更新界面 2.八大生命周期 beforeCreate,created,beforeMount,mounted,beforeUpdate,updated,beforeUnmount,

ling_xy的博客 1057

vue2.0——生命周期

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <script src="../js/Vue.js"></script> <script> window.onload = function(){ var vm

小牛牛的博客 2038

vue2.0 生命周期 简析

Vue2.0 生命周期钩子函数: <template>   <div id='app'>     {{message}}    </div> </template> var app = new Vue({   el: '#app',   data: {     message: 'hello vue'   },   生命周期钩子函数: function() {     console.log(this.$el);     console.log(this.$

xiaozhen0610的博客 352
上一篇: 【Git】Git安装 + 多站点SSH Key配置
下一篇: 【VUE】vuejs实现数据驱动视图原理
tanpenggood
博客等级 码龄9年 129粉丝 197原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值