基于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 相关文章推荐
改版了网上的一个js操作userdata
Apr 27 Javascript
editable.js 基于jquery的表格的编辑插件
Oct 24 Javascript
常用的jQuery前端技巧收集
Dec 24 Javascript
jQuery内容过滤选择器用法示例
Sep 09 Javascript
canvas绘制多边形
Feb 24 Javascript
javascript图片预览和上传(兼容IE)
Mar 15 Javascript
Angular2学习教程之ng中变更检测问题详解
May 28 Javascript
Angular4编程之表单响应功能示例
Dec 13 Javascript
JavaScrip数组去重操作实例小结
Jun 20 Javascript
javascript面向对象三大特征之多态实例详解
Jul 24 Javascript
JavaScript 实现HTML DOM增删改查操作的常见方法详解
Jan 04 Javascript
JavaScript中的惰性载入函数及优势
Feb 18 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
文件上传之SWFUpload插件(代码)
2015/07/30 PHP
jquery 插件开发备注
2010/08/27 Javascript
jquery文本框中的事件应用以输入邮箱为例
2014/05/06 Javascript
JavaScript实现信用卡校验方法
2015/04/07 Javascript
JS加载iFrame出现空白问题的解决办法
2016/05/13 Javascript
浅谈jquery点击label触发2次的问题
2016/06/12 Javascript
AngularJS入门教程之Helloworld示例
2016/12/25 Javascript
原生JS下拉加载插件分享
2016/12/26 Javascript
微信小程序 实战程序简易新闻的制作
2017/01/09 Javascript
jQuery插件FusionCharts实现的MSBar2D图效果示例【附demo源码】
2017/03/24 jQuery
vue.js过滤器+ajax实现事件监听及后台php数据交互实例
2018/05/22 Javascript
Jquery和CSS实现选择框重置按钮功能
2018/11/08 jQuery
jQuery实现图片随机切换、抽奖功能(实例代码)
2019/10/23 jQuery
vue中渲染对象中属性时显示未定义的解决
2020/07/31 Javascript
vscode中Vue别名路径提示的实现
2020/07/31 Javascript
Python查找相似单词的方法
2015/03/05 Python
Python中__init__.py文件的作用详解
2016/09/18 Python
python中requests库session对象的妙用详解
2017/10/30 Python
Python实现的朴素贝叶斯分类器示例
2018/01/06 Python
Python实现的KMeans聚类算法实例分析
2018/12/29 Python
总结python中pass的作用
2019/02/27 Python
详解python中的生成器、迭代器、闭包、装饰器
2019/08/22 Python
postman和python mock测试过程图解
2020/02/22 Python
Python 操作 MySQL数据库
2020/09/18 Python
波兰购物网站:MALL.PL
2019/05/01 全球购物
Wedgwood英国官方网站:英式精致骨瓷餐具、礼品与生活精品,源于1759年
2019/09/02 全球购物
某/etc/fstab文件中的某行如下: /dev/had5 /mnt/dosdata msdos defaults,usrquota 1 2 请解释其含义
2013/04/11 面试题
资产评估专业大学生求职信
2013/09/29 职场文书
如何打造一封优秀的留学推荐信
2014/01/25 职场文书
国际贸易专业个人求职信格式
2014/02/02 职场文书
质量提升方案
2014/06/16 职场文书
办理信用卡工作证明
2014/09/30 职场文书
诉讼授权委托书范本
2014/10/05 职场文书
党的群众路线教育实践活动调研报告
2014/11/03 职场文书
个人德育工作总结
2015/03/05 职场文书
签证工作证明模板
2015/06/15 职场文书