基于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 Autocomplete 结合asp.net使用要点
Oct 29 Javascript
JQuery开发的数独游戏代码
Oct 29 Javascript
javascript二维数组转置实例
Jan 22 Javascript
深入浅出分析javaScript中this用法
May 09 Javascript
详解JavaScript中的4种类型识别方法
Sep 14 Javascript
JS操作JSON方法总结(推荐)
Jun 14 Javascript
基于node打包可执行文件工具_Pkg使用心得分享
Jan 24 Javascript
vue.js图片转Base64上传图片并预览的实现方法
Aug 02 Javascript
vue实现百度搜索功能
Dec 28 Javascript
探究一道价值25k的蚂蚁金服异步串行面试题
Aug 21 Javascript
详解JavaScript中的数据类型,以及检测数据类型的方法
Sep 17 Javascript
浅析微信小程序自定义日历组件及flex布局最后一行对齐问题
Oct 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
Smarty结合Ajax实现无刷新留言本实例
2007/01/02 PHP
用Zend Encode编写开发PHP程序
2010/02/21 PHP
php动态实现表格跨行跨列实现代码
2012/11/06 PHP
php打造智能化的柱状图程序,用于报表等
2015/06/19 PHP
laravel中短信发送验证码的实现方法
2018/04/25 PHP
PHP微信网页授权的配置文件操作分析
2019/05/29 PHP
javascript dom代码应用 简单的相册[firefox only]
2010/06/12 Javascript
javascript基础知识大全 便于大家学习,也便于我自己查看
2012/08/17 Javascript
原生javascript实现Tab选项卡切换功能
2015/01/12 Javascript
jquery实现无限分级横向导航菜单的方法
2015/03/12 Javascript
jquery ui resize 中border-box的bug修正
2015/04/26 Javascript
基于javascript实现动态显示当前系统时间
2016/01/28 Javascript
jQuery获取attr()与prop()属性值的方法及区别介绍
2016/07/06 Javascript
vue使用中的内存泄漏【推荐】
2018/07/10 Javascript
jquery使用echarts实现有向图可视化功能示例
2019/11/25 jQuery
JS获取表格视图所选行号的ids过程解析
2020/02/21 Javascript
js动态生成表格(节点操作)
2021/01/12 Javascript
Python2.x与Python3.x的区别
2016/01/14 Python
python3.5 email实现发送邮件功能
2018/05/22 Python
浅谈python之高阶函数和匿名函数
2019/03/21 Python
Python3+Requests+Excel完整接口自动化测试框架的实现
2019/10/11 Python
python itsdangerous模块的具体使用方法
2020/02/17 Python
python+selenium 脚本实现每天自动登记的思路详解
2020/03/11 Python
python访问hdfs的操作
2020/06/06 Python
通过代码实例了解Python sys模块
2020/09/14 Python
详解CSS3中使用gradient实现渐变效果的方法
2015/08/18 HTML / CSS
孤独星球出版物:Lonely Planet Publications
2018/03/17 全球购物
高分子材料与工程专业个人求职信
2013/12/15 职场文书
2015大学生暑假调查报告
2015/07/13 职场文书
演讲稿:态度决定一切
2019/04/02 职场文书
SQL实现LeetCode(197.上升温度)
2021/08/07 MySQL
利用Python读取微信朋友圈的多种方法总结
2021/08/23 Python
JavaScript执行机制详细介绍
2021/12/06 Javascript
Mac电脑OS系统下安装Nginx的详细教程
2022/04/14 Servers
vue里使用create, mounted调用方法
2022/04/26 Vue.js
搭建zabbix监控以及邮件报警的超级详细教学
2022/07/15 Servers