vue实例的生命周期 —— 钩子函数

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

vue有8种生命周期函数:

钩子函数 触发的行为  在此阶段可以做的事情
beforeCreadted
在实例创建以前调用,没有实例化,数据访问不到

vue实例的挂载元素$el和数据对象data都为undefined,还未初始化。

  加loading事件
created
实例被创建完成后调用

vue实例的数据对象data有了,$el还没有


结束loading、请求数据为mounted渲染做准备

能拿到数据,能修改数据,

且修改数据不会触发updated beforeUpdate钩子函数

可以在这个钩子函数里发请求,访问后端接口拿数据

判断是否存在el,是否存在template,如果二者都有,以template为主优先, 如果没有template,会选择el模板。

beforeMount vue实例的$el和data都初始化了,但还是虚拟的dom节点,具体的data.filter还未替换。
可以访问数据,也可以更改数据

且修改数据不会触发updated beforeUpdate钩子函数

在beforeMount和mounted之间隐藏了一个render函数,千万不能写,会覆盖系统函数

mounted vue实例挂载完成,data.filter成功渲染 
配合路由钩子使用

可以访问和更改数据,且修改数据会触发updated beforeUpdate钩子函数

beforeUpdate  data更新时触发   
updated  data更新时触发 
beforeUpdate 、updated 可以监控data里的所有数据变化

不要在update beforeUpdate修改不定数据,否则会引起死循环

监听data里的所有的数据,非updated莫属

beforeDestroy  组件销毁时触发  可以清理非vue资源,防止内存泄露
destroyed  组件销毁时触发,vue实例解除了事件监听以及和dom的绑定(无响应了),但DOM节点依旧存在  组件销毁时进行提示

  注意:destroyed钩子函数有一点一定要特别注意:在执行destroy方法后,对data的改变不会再触发周期函数,此时的vue实例已经解除了事件监听以及和dom的绑定,但是dom结构依然存在。所以对于实时显示的通知型组件,在他destroyed之前,我们必须手动removeChild()删除该节点;否则,DOM节点还是存在,影响浏览器性能。

原文地址:https://www.cnblogs.com/miaomiaolong2/p/12391936.html

时间: 2024-10-06 10:46:29

vue实例的生命周期 —— 钩子函数的相关文章

聊一聊Vue实例与生命周期运行机制

Vue的实例是Vue框架的入口,担任MVVM中的ViewModel角色,所有功能的实现都是围绕其生命周期进行的,在生命周期的不同阶段调用对应的钩子函数可以实现组件数据管理和DOM渲染两大重要功能.例如,实例需要配置数据观测(data observer).编译模版.挂载实例到 DOM ,然后在数据变化时更新 DOM .在这个过程中,事件钩子可以辅助我们对整个实例生成.编译.挂载.销毁等过程进行js控制,给我们提供了执行自定义逻辑的机会.所以学习实例的生命周期,能帮助我们理解vue实例的运行机制,更

从零开始学 Web 之 Vue.js(三)Vue实例的生命周期

大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公众号:Web前端之巅 博客园:http://www.cnblogs.com/lvonve/ CSDN:https://blog.csdn.net/lvonve/ 在这里我会从 Web 前端零基础开始,一步步学习 Web 相关的知识点,期间也会分享一些好玩的项目.现在就让我们一起进入 Web 前端学习的冒险之旅吧! 一.vue实例的生

关于Vue实例的生命周期(2)

 关于Vue实例的生命周期(2) 创建(create)->挂载(mount)->更新(update)->销毁(destory) 钩子函数触发事件 beforeCreate 在实例初始化之后,数据观测(data observer) 和 event/watcher 事件配置之前被调用. created 实例已经创建完成之后被调用.在这一步,实例已完成以下的配置:数据观测(data observer),属性和方法的运算, watch/event 事件回调.然而,挂载阶段还没开始,$el 属性目

vue学习三:生命周期钩子

生命周期钩子介绍: 每个 Vue 实例在被创建时都要经过一系列的初始化过程--例如,需要设置数据监听.编译模板.将实例挂载到 DOM 并在数据变化时更新 DOM 等.同时在这个过程中也会运行一些叫做生命周期钩子的函数,这给了用户在不同阶段添加自己的代码的机会. 这个生命周期钩子函数可以在官网上看到,只要记住最重要的mounted就可以了,是html进行发送请求后台进行数据交互的钩子函数: 这个生命周期函数的图片是可以在官网上看到的,所以可以进行官网进行理解: 比如 created 钩子可以用来在

react中的生命周期钩子函数? 每个都是干什么用的?

首先react有10个生命周期钩子函数 挂载期constructor 数据接收 实现继承super(props)componentWillMount 数据挂载之前 可以操作数据 不可以操作domcomponentDidMount 数据挂载之后 可以操作数据和domrender 渲染组件 和 html 标签 更新期shouldComponentUpdate 检测组件内的变化 可以用作页面性能的优化(默认值为true)componentReceiveProps 接收组件传入输入数据component

对vue生命周期/钩子函数的理解

对于实现页面逻辑交互等效果,我们必须知晓vue的生命周期,才能愉快的玩耍,知道我们写的东西应该挂载到哪里,vue官方给出的api讲解的那叫一个简单啊,如下: 所有的生命周期钩子自动绑定this上下文到实例中,因此你可以访问数据,对属性和方法进行运算.这意味着你不能使用箭头函数来定义一个生命周期方法(例如created: () => this.fetchTodos()).这是因为箭头函数绑定了父上下文,因此this与你期待的 Vue 实例不同,this.fetchTodos的行为未定义. 下面附加

Vue生命周期/钩子函数的理解

对于实现页面逻辑交互等效果,我们必须弄懂vue的生命周期,知道我们写的东西应该挂载到哪里.vue官方api给了简单的逻辑,如下: 所有的生命周期钩子自动绑定this上,因此你可以访问数据,属性和方法进行运算,所以要特别注意的是不能使用箭头函数来定义一个生命周期方法(例如created: () => this.fetchTodos()). 下面附加一张生命周期图示 <!DOCTYPE html> <html> <head> <title></tit

Vue 生命周期钩子函数

Vue生命周期 每个vue实例在被创建时都需要经过一系列初始化过程. 如设置数据监听.编译模板.将实例挂载到DOM.在数据变化时更新DOM等. 同时在这个过程中也会运行一些角坐生命周期钩子的函数,这给了用户在不同阶段添加自己代码的机会. 2.6.1版本有8个生命周期 beforeCreate created beforeCreate 在实例创建之前执行,此时data数据访问不到,不能通过this修改data属性 created 在实例创建完执行,此时可以拿到data数据,可以通过this修改da

vue之生命周期钩子函数

1.vue router.beforeEach beforeEach的钩子函数,它是一个全局的before 钩子函数, (before each)意思是在 每次每一个路由改变的时候都得执行一遍. 它的三个参数: to: (Route路由对象) 即将要进入的目标 路由对象 to对象下面的属性: path params query hash fullPath matched name meta(在matched下,但是本例可以直接用) from: (Route路由对象) 当前导航正要离开的路由 ne