当前位置:网站首页 > Vue.js开发 > 正文

vue生命周期常用的四个钩子函数(vue的生命周期钩子函数有哪些)



摘要:Vue为生命周期中的每个状态都设置了钩子函数(监听函数) 。每当Vue实例处于不同的生命周期时,对应的函数就会被触发调用。

我们把一个对象从生成(new)到被销毁(destory)的过程,称为生命周期。而生命周期函数,就是在某个时刻会自动执行的函数。

按照官方的原话,就是每个 Vue 实例在被创建时都要经过一系列的初始化过程——例如,需要设置数据监听、编译模板、将实例挂载到 DOM 并在数据变化时更新 DOM 等。同时在这个过程中也会运行一些叫做生命周期钩子的函数,这给了用户在不同阶段添加自己的代码的机会。

简单来说就是每个Vue实例在被创建时都要经过一系列的初始化过程:创建实例,装载模板,渲染模板等。Vue为生命周期中的每个状态都设置了钩子函数(监听函数) 。每当Vue实例处于不同的生命周期时,对应的函数就会被触发调用。

下面是官方文档里的生命周期图,英语好的同学可以看看: 详解Vue八大生命周期钩子函数_Vue

先看案例基本代码如下,后面通过如下代码步骤演示一个对象从生成到被销毁的过程各阶段执行的生命周期函数。注意show函数的作用。

这个阶段vue实例刚刚在内存中创建,此时data和methods这些都没初始化好。在案例中添加beforeCreate钩子函数:

看运行结果:

详解Vue八大生命周期钩子函数_Vue实例_02

可以看到,此时vue实例刚刚在内存中创建,其它什么都undefined。

这个阶段vue实例在内存中已经创建好了,data和methods也能够获取到了,但是模板还没编译。在案例中添加created钩子函数:

看结果:

详解Vue八大生命周期钩子函数_Vue实例_03

看到没,已经知道data里的数据了。其它的话都没。

这个阶段完成了模板的编译,但是还没挂载到页面上。在案例中添加钩子函数:

看结果:

详解Vue八大生命周期钩子函数_Vue实例_04

看到没,要挂载的对象都编译好了,但是页面的DOM树还没挂上去,这个阶段页面还没能显示出来

这个阶段,模板编译好了,也挂载到页面中了,页面也可以显示了。在案例中添加钩子函数:

看结果:

详解Vue八大生命周期钩子函数_八大生命周期_05

转态更新之前执行此函数,此时data中数据的状态值已经更新为最新的,但是页面上显示的数据还是最原始的,还没有重新开始渲染DOM树。

先改变data里数据:

在案例中添加钩子函数:

看结果:

详解Vue八大生命周期钩子函数_对象_06

看到没,vue实例里的数据已经变成了南极光之夜。但是此阶段页面DOM节点上显示的还是初始的数据北极光之夜。

这个阶段是转态更新完成后执行此函数,此时data中数据的状态值是最新的,而且页面上显示的数据也是最新的,DOM节点已经被重新渲染了。在案例中添加钩子函数:

看运行结果:

详解Vue八大生命周期钩子函数_八大生命周期_07

更新了,全都更新了~

beforeDestroy阶段处于vue实例被销毁之前,当然,这个阶段vue实例还能用。

销毁Vue实例:

在案例中添加钩子函数:

看效果:

详解Vue八大生命周期钩子函数_对象_08

这个阶段在vue实例销毁后调用,此时所有实例指示的所有东西都会解除绑定,事件监听器也都移除,子实例也被销毁。

在案例中添加钩子函数:

看结果:

详解Vue八大生命周期钩子函数_Vue_09

 

到此这篇vue生命周期常用的四个钩子函数(vue的生命周期钩子函数有哪些)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • ubuntu镜像源网站(ubuntu16.04镜像源)2025-11-24 09:36:04
  • map转成json对象(map转json对象 fastjson)2025-11-24 09:36:04
  • 192.168.100.1随身wifi登录(1921681001随身wifi登录adminadmhih)2025-11-24 09:36:04
  • js深拷贝和浅拷贝的方法区别(js深拷贝和浅拷贝面试题)2025-11-24 09:36:04
  • vue的安装教程(怎么安装vue环境)2025-11-24 09:36:04
  • vue安装脚手架 检查版本(vue脚手架怎么老是安装报错)2025-11-24 09:36:04
  • ubuntu安装cmake3.12(Ubuntu安装anaconda)2025-11-24 09:36:04
  • vue路由守卫函数是(vuex路由守卫)2025-11-24 09:36:04
  • vmware12.0密钥(vmware2012密钥)2025-11-24 09:36:04
  • tomcat7.0乱码怎么解决(tomcat解决乱码问题)2025-11-24 09:36:04
  • 全屏图片