基于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 相关文章推荐
jQuery帮助之CSS尺寸(五)outerHeight、outerWidth
Nov 14 Javascript
js中用window.open()打开多个窗口的name问题
Mar 13 Javascript
Jquery操作js数组及对象示例代码
May 11 Javascript
javascript实现多栏闭合展开式广告位菜单效果实例
Aug 05 Javascript
如何使用AngularJs打造权限管理系统【简易型】
May 09 Javascript
详解基于webpack2.x的vue2.x的多页面站点
Aug 21 Javascript
Vue网页html转换PDF(最低兼容ie10)的思路详解
Aug 24 Javascript
vue实现键盘输入支付密码功能
Aug 18 Javascript
vue Tab切换以及缓存页面处理的几种方式
Nov 05 Javascript
JS自定义对象创建与简单使用方法示例
Jan 15 Javascript
Vue+Java 通过websocket实现服务器与客户端双向通信操作
Sep 22 Javascript
如何理解Vue简单状态管理之store模式
May 15 Vue.js
基于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常用技巧汇总
2016/03/04 PHP
PHP命令空间namespace及use的用法小结
2017/11/27 PHP
再谈Yii Framework框架中的事件event原理与应用
2020/04/07 PHP
一些常用弹出窗口/拖放/异步文件上传等实用代码
2013/01/06 Javascript
javascript贪吃蛇完整版(源码)
2013/12/09 Javascript
js中精确计算加法和减法示例
2014/03/28 Javascript
浅谈jQuery中replace()方法
2015/05/13 Javascript
JavaScript实现打字效果的方法
2015/07/10 Javascript
js仿黑客帝国字母掉落效果代码分享
2020/11/08 Javascript
JavaScript中定义类的方式详解
2016/01/07 Javascript
JavaScript中定义对象原型的两种使用方法
2016/12/15 Javascript
Jqprint实现页面打印
2017/01/06 Javascript
Javascript中 带名 匿名 箭头函数的重要区别(推荐)
2017/01/29 Javascript
jQuery基于ajax方式实现用户名存在性检查功能示例
2017/02/10 Javascript
Angularjs的$http异步删除数据详解及实例
2017/07/27 Javascript
javascript数组拍平方法总结
2018/01/20 Javascript
深入浅析Vue.js计算属性和侦听器
2018/05/05 Javascript
实例详解vue中的$root和$parent
2019/04/29 Javascript
解决antd 表单设置默认值initialValue后验证失效的问题
2020/11/02 Javascript
[01:45]DOTA2新英雄“神谕者”全方位展示
2014/11/21 DOTA
python cookielib 登录人人网的实现代码
2012/12/19 Python
Windows下Python2与Python3两个版本共存的方法详解
2017/02/12 Python
python smtplib模块自动收发邮件功能(一)
2018/05/22 Python
深入剖析HTML5 内联框架iFrame
2016/05/04 HTML / CSS
德国PC硬件网站:CASEKING
2016/10/20 全球购物
Tuckernuck官网:经典的美国品质服装、鞋子和配饰
2021/01/11 全球购物
个人充满哲理的自我评价
2014/02/20 职场文书
办公设备采购方案
2014/03/16 职场文书
高中班级口号
2014/06/09 职场文书
战略合作意向书
2014/07/29 职场文书
房产协议书范本
2014/10/18 职场文书
优秀班主任推荐材料
2014/12/17 职场文书
班主任工作总结范文
2015/08/13 职场文书
2019年亲子运动会口号
2019/10/11 职场文书
解析Redis Cluster原理
2021/06/21 Redis
oracle设置密码复杂度及设置超时退出的功能
2022/06/28 Oracle