基于Vue实例生命周期(全面解析)


Posted in Javascript onAugust 16, 2017

前面的话

Vue实例在创建时有一系列的初始化步骤,例如建立数据观察,编译模板,创建数据绑定等。在此过程中,我们可以通过一些定义好的生命周期钩子函数来运行业务逻辑。本文将详细介绍Vue实例的生命周期

图示

下图是Vue实例生命周期的图示

基于Vue实例生命周期(全面解析)

解释

接下来,根据提供的生命周期钩子,对Vue实例各个阶段的情况进行详细说明

【beforeCreate】

在实例开始初始化时同步调用。此时数据观测、事件等都尚未初始化

【created】

在实例创建之后调用。此时已完成数据观测、事件方法,但尚未开始DOM编译,即未挂载到document中

【beforeMount】

在mounted之前运行

【mounted】

在编译结束时调用。此时所有指令已生效,数据变化已能触发DOM更新,但不保证$el已插入文档

【beforeUpdate】

在实例挂载之后,再次更新实例(例如更新 data)时会调用该方法,此时尚未更新DOM结构

【updated】

在实例挂载之后,再次更新实例并更新完DOM结构后调用

【beforeDestroy】

在开始销毁实例时调用,此刻实例仍然有效

【destroyed】

在实例被销毁之后调用。此时所有绑定和实例指令都已经解绑,子实例也被销毁

【activated】

需要配合动态组件keep-live属性使用。在动态组件初始化渲染的过程中调用该方法

【deactivated】

需要配合动态组件keep-live属性使用。在动态组件初始化移出的过程中调用该方法

简单实例

下面写一个简单实例来更清楚地了解Vue实例内部的运行机制

<div id="example">{{message}}</div>
<script>
var vm = new Vue({
 el: '#example',
 data:{
 message:'match'
 },
 beforeCreate(){
 console.log('beforeCreate');
 },
 created(){
 console.log('created');
 },
 beforeMount(){
 console.log('beforeMount');
 },
 mounted(){
 console.log('mounted');
 },
 beforeUpdate(){
 console.log('beforeUpdate');
 },
 updated(){
 console.log('updated');
 //组件更新后调用$destroyed函数,进行销毁
 this.$destroy(); 
 },
 beforeDestroy(){
 console.log('beforeDestroy');
 },
 destroyed(){
 console.log('destroyed');
 },
})
</script>
基于Vue实例生命周期(全面解析)

以上这篇基于Vue实例生命周期(全面解析)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
自动最大化窗口的Javascript代码
May 22 Javascript
javascript的document.referrer浏览器支持、失效情况总结
Jul 18 Javascript
基于js对象,操作属性、方法详解
Aug 11 Javascript
原生js图片轮播效果实现代码
Oct 19 Javascript
Javascript 动态改变imput type属性
Nov 01 Javascript
Javascript oop设计模式 面向对象编程简单实例介绍
Dec 13 Javascript
js随机生成一个验证码
Jun 01 Javascript
JavaScript回调函数callback用法解析
Jan 14 Javascript
在vue中created、mounted等方法使用小结
Jul 21 Javascript
基于Vue中的父子传值问题解决
Jul 27 Javascript
解决vue中axios设置超时(超过5分钟)没反应的问题
Sep 04 Javascript
js实现移动端图片滑块验证功能
Sep 29 Javascript
基于JQuery的Ajax方法使用详解
Aug 16 #jQuery
angular或者js怎么确定选中ul中的哪几个li
Aug 16 #Javascript
JS操作时间 - UNIX时间戳的简单介绍(必看篇)
Aug 16 #Javascript
label+input实现按钮开关切换效果的实例
Aug 16 #Javascript
bootstrap modal+gridview实现弹出框效果
Aug 15 #Javascript
vue实现点击图片放大效果
Aug 15 #Javascript
jquery获取链接地址和跳转详解(推荐)
Aug 15 #jQuery
You might like
php minixml详解
2008/07/19 PHP
php echo()和print()、require()和include()函数区别说明
2010/03/27 PHP
PHP函数http_build_query使用详解
2014/08/20 PHP
PHP判断表达式中括号是否匹配的简单实例
2016/10/22 PHP
PHP进制转换实例分析(2,8,16,36,64进制至10进制相互转换)
2017/02/04 PHP
List the Codec Files on a Computer
2007/06/18 Javascript
jquery 元素控制(追加元素/追加内容)介绍及应用
2013/04/21 Javascript
js生成的验证码的实现与技术分析
2014/09/17 Javascript
jQuery中:nth-child选择器用法实例
2014/12/31 Javascript
js捕捉键盘事件和按键键值的方法
2016/10/10 Javascript
AngularJS 表单验证手机号的实例(非必填)
2017/11/12 Javascript
如何在js代码中消灭for循环实例详解
2018/07/29 Javascript
vue js秒转天数小时分钟秒的实例代码
2018/08/08 Javascript
如何解决日期函数new Date()浏览器兼容性问题
2019/09/11 Javascript
vue项目中在可编辑div光标位置插入内容的实现代码
2020/01/07 Javascript
js实现直播点击飘心效果
2020/08/19 Javascript
vue 项目中当访问路由不存在的时候默认访问404页面操作
2020/08/31 Javascript
[09:23]国际邀请赛采访专栏:iG战队VK,Tongfu战队Cu
2013/08/05 DOTA
[01:11:35]Liquid vs LGD 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
Python向MySQL批量插数据的实例讲解
2018/03/31 Python
Appium Python自动化测试之环境搭建的步骤
2019/01/23 Python
python实现贪吃蛇游戏
2020/03/21 Python
python3使用matplotlib绘制散点图
2019/03/19 Python
Python控制Firefox方法总结
2019/06/03 Python
python openCV自制绘画板
2020/10/27 Python
CSS3制作文字半透明倒影效果的两种实现方式
2014/08/08 HTML / CSS
基督教卡片、励志礼品、家居装饰等:DaySpring
2018/10/12 全球购物
英国领先的在线高尔夫商店:Gamola Golf
2019/11/16 全球购物
巴西24小时在线药房:Droga Raia
2020/05/12 全球购物
农民入党思想汇报
2014/01/03 职场文书
继电保护工岗位职责
2014/01/05 职场文书
《英英学古诗》教学反思
2014/04/11 职场文书
人事专员岗位说明书
2014/07/29 职场文书
清明节网上祭英烈寄语2015
2015/03/04 职场文书
苹果M1芯片安装nginx 并且部署vue项目步骤详解
2021/11/20 Servers
python数字图像处理实现图像的形变与缩放
2022/06/28 Python