基于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高级程序设计 阅读笔记(七) ECMAScript中的语句
Feb 27 Javascript
js获取GridView中行数据的两种方法 分享
Jul 13 Javascript
javascript放大镜效果的简单实现
Dec 09 Javascript
在父页面得到zTree已选中的节点的方法
Feb 12 Javascript
分析js闭包引起的事件注册问题
Mar 29 Javascript
JS打印组合功能
Aug 04 Javascript
利用jQuery插件imgAreaSelect实现图片上传裁剪(放大缩小)
Dec 02 Javascript
React Native时间转换格式工具类分享
Oct 24 Javascript
详解React之key的使用和实践
Sep 29 Javascript
详解vue项目中使用token的身份验证的简单实践
Mar 08 Javascript
JavaScript中Dom操作实例详解
Jul 08 Javascript
vue cli4下环境变量和模式示例详解
Apr 09 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
BBS(php &amp; mysql)完整版(三)
2006/10/09 PHP
PHP 字符串 小常识
2009/06/05 PHP
用PHP代替JS玩转DOM的思路及示例代码
2014/06/15 PHP
php实现zip文件解压操作
2015/11/03 PHP
CI框架实现框架前后端分离的方法详解
2016/12/30 PHP
php微信公众号开发之简答题
2018/10/20 PHP
收藏一些不常用,但是有用的代码
2007/03/12 Javascript
在Javascript中 声明时用&quot;var&quot;与不用&quot;var&quot;的区别
2013/04/15 Javascript
js中的json对象详细介绍
2014/10/29 Javascript
jQuery基础语法实例入门
2014/12/23 Javascript
js实现页面跳转的五种方法推荐
2016/03/10 Javascript
使用PHP+JavaScript将HTML页面转换为图片的实例分享
2016/04/18 Javascript
js带闹铃功能的倒计时代码
2016/09/29 Javascript
使用vue2实现购物车和地址选配功能
2018/03/29 Javascript
关于jquery layui弹出层的使用方法
2018/04/21 jQuery
解决Vue2.0中使用less给元素添加背景图片出现的问题
2018/09/03 Javascript
详解vue-video-player使用心得(兼容m3u8)
2019/08/23 Javascript
Python中的Descriptor描述符学习教程
2016/06/02 Python
Python数据分析之双色球基于线性回归算法预测下期中奖结果示例
2018/02/08 Python
Python多线程扫描端口代码示例
2018/02/09 Python
关于python中的xpath解析定位
2020/03/06 Python
Python开发之身份证验证库id_validator验证身份证号合法性及根据身份证号返回住址年龄等信息
2020/03/20 Python
Django后端分离 使用element-ui文件上传方式
2020/07/12 Python
HTML5本地存储之IndexedDB
2017/06/16 HTML / CSS
美国领先的奢侈手表在线零售商:WatchMaxx
2017/12/17 全球购物
Crucial英睿达法国官网:内存条及SSD固态硬盘升级
2018/07/13 全球购物
小蚁科技官方商店:YI Technology
2019/08/23 全球购物
区域总监的岗位职责
2013/11/21 职场文书
自我评价的写作规则
2014/01/06 职场文书
2015年仓库管理工作总结
2015/05/25 职场文书
电影雷锋观后感
2015/06/10 职场文书
返乡农民工证明
2015/06/24 职场文书
2016秋季田径运动会广播稿
2015/12/21 职场文书
Win11 引入 Windows 365 云操作系统,适应疫情期间混合办公模式:启动时直接登录、模
2022/04/06 数码科技
在SQL Server中使用 Try Catch 处理异常的示例详解
2022/07/15 SQL Server
SpringBoot Http远程调用的方法
2022/08/14 Java/Android