热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

VueLifeCycle生命周期钩子函数【非深入】

1.在我们使用Vue写项目时,必须要了解Vue实例化过程中所经历的一些事件。Vue实例从被创建到销毁的阶段被称作生命周期,在其中我们可以通过八大生命周期钩子函数在Vue实例化的不同

1. 在我们使用 Vue 写项目时,必须要了解 Vue 实例化过程中所经历的一些事件。Vue 实例从被创建到销毁的阶段被称作生命周期,在其中我们可以通过八大生命周期钩子函数在 Vue 实例化的不同阶段添加自己希望书写的代码。

(1)beforeCreate:vue 实例刚刚创建出来,data、methods、computed 等均不可以调用。一般在此处可以添加一个 loading 事件。

(2)created:vue 实例已经创建,data、methods 等已经可以在实例内部调用。

  同时,一般在此钩子函数中进行异步请求。在此时还不可以进行对DOM的操作,例如使用 $refs 获取DOM中的元素节点会得到undefined,如果希望在 mounted 之前的钩子函数中调用DOM元素,要加上 $nextTick().

(3)beforeMount:在此阶段模板已经完成编译并在内存中渲染,但还未渲染在页面中。【如果不存在 template,则将 el 对应的DOM元素当做模板,如果存在 template,则将其进入到 render 函数进行渲染】

(4)mounted:此时已经创建了 vm.$el,并替换原 el 对应DOM元素,可以对DOM元素进行操作了,例如使用 $refs.

(5)beforeUpdate:此时实例中的数据已经更新,但还未渲染到页面中。

(6)updated:页面已经重新渲染。

(7)beforeDestroy:销毁组件之前,可以进行一些提示:您确定要销毁xxx吗?

(8)destroyed:vue 实例已经被销毁。

拓展:如果在使用 router 时,使用了 keep-alive,那么会对组件进行一个缓存,每次进入组件不会执行 created,但如果我们希望每次进入组件时执行一些操作,则需要 activated 激活钩子函数,与之对应的是deactivated,当我们离开组件时进入此钩子函数。

2. 在这里简单的测试一下:【一个页面加载时,会执行四个周期函数,即 beforeCreate、created、beforeMount、mounted】

 

beforeCreate:此时 vue 实例中 data 和 methods 都还没有初始化,得到的是 undefined,模板也还未挂载,DOM中无法获取 vue 实例的内容。

 created:此时 vue 实例中的 data 和 methods 初始化完毕。

 beforeMount: 此时完成了模板的编译,但还没有挂载到页面DOM上,没有在页面中渲染出来。【如果Vue实例中传入了template,那么就会编译此template并覆盖el中的DOM,如果没有传入template,则会将el中的DOM当做模板】

 

 

 mounted:此时模板渲染完毕在页面中显示出来。

 beforeUpdate:此时 data 中的数据已经更新,但还未渲染到页面中。

updated:此时数据更新并且页面中的数据也重新进行了渲染。

beforeDestroy:此时 Vue 实例还未被销毁,但是模板和页面中的数据已经不是更新过的数据了,回到了原始状态;而 Vue 实例中的数据仍然是更新过的数据。

destroy:此时 Vue 实例已经销毁。

 

最后转载一张别人的图:https://juejin.cn/post/6844903945567993870#heading-1

 


原文链接:https://www.cnblogs.com/twinkleG/p/15520064.html



推荐阅读
  • Android实战——jsoup实现网络爬虫,糗事百科项目的起步
    本文介绍了Android实战中使用jsoup实现网络爬虫的方法,以糗事百科项目为例。对于初学者来说,数据源的缺乏是做项目的最大烦恼之一。本文讲述了如何使用网络爬虫获取数据,并以糗事百科作为练手项目。同时,提到了使用jsoup需要结合前端基础知识,以及如果学过JS的话可以更轻松地使用该框架。 ... [详细]
  • MySQL中的MVVC多版本并发控制机制的应用及实现
    本文介绍了MySQL中MVCC的应用及实现机制。MVCC是一种提高并发性能的技术,通过对事务内读取的内存进行处理,避免写操作堵塞读操作的并发问题。与其他数据库系统的MVCC实现机制不尽相同,MySQL的MVCC是在undolog中实现的。通过undolog可以找回数据的历史版本,提供给用户读取或在回滚时覆盖数据页上的数据。MySQL的大多数事务型存储引擎都实现了MVCC,但各自的实现机制有所不同。 ... [详细]
  • 本文介绍了贝叶斯垃圾邮件分类的机器学习代码,代码来源于https://www.cnblogs.com/huangyc/p/10327209.html,并对代码进行了简介。朴素贝叶斯分类器训练函数包括求p(Ci)和基于词汇表的p(w|Ci)。 ... [详细]
  • 本文介绍了2015年九月八日的js学习总结及相关知识点,包括参考书《javaScript Dom编程的艺术》、js简史、Dom、DHTML、解释型程序设计和编译型程序设计等内容。同时还提到了最佳实践是将标签放到HTML文档的最后,并且对语句和注释的使用进行了说明。 ... [详细]
  • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
  • Windows下配置PHP5.6的方法及注意事项
    本文介绍了在Windows系统下配置PHP5.6的步骤及注意事项,包括下载PHP5.6、解压并配置IIS、添加模块映射、测试等。同时提供了一些常见问题的解决方法,如下载缺失的msvcr110.dll文件等。通过本文的指导,读者可以轻松地在Windows系统下配置PHP5.6,并解决一些常见的配置问题。 ... [详细]
  • 本文介绍了计算机网络的定义和通信流程,包括客户端编译文件、二进制转换、三层路由设备等。同时,还介绍了计算机网络中常用的关键词,如MAC地址和IP地址。 ... [详细]
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
  • 本文介绍了前端人员必须知道的三个问题,即前端都做哪些事、前端都需要哪些技术,以及前端的发展阶段。初级阶段包括HTML、CSS、JavaScript和jQuery的基础知识。进阶阶段涵盖了面向对象编程、响应式设计、Ajax、HTML5等新兴技术。高级阶段包括架构基础、模块化开发、预编译和前沿规范等内容。此外,还介绍了一些后端服务,如Node.js。 ... [详细]
  • 本文介绍了如何使用jQuery和AJAX来实现动态更新两个div的方法。通过调用PHP文件并返回JSON字符串,可以将不同的文本分别插入到两个div中,从而实现页面的动态更新。 ... [详细]
  • JavaWeb中读取文件资源的路径问题及解决方法
    在JavaWeb开发中,读取文件资源的路径是一个常见的问题。本文介绍了使用绝对路径和相对路径两种方法来解决这个问题,并给出了相应的代码示例。同时,还讨论了使用绝对路径的优缺点,以及如何正确使用相对路径来读取文件。通过本文的学习,读者可以掌握在JavaWeb中正确找到和读取文件资源的方法。 ... [详细]
  • Final关键字的含义及用法详解
    本文详细介绍了Java中final关键字的含义和用法。final关键字可以修饰非抽象类、非抽象类成员方法和变量。final类不能被继承,final类中的方法默认是final的。final方法不能被子类的方法覆盖,但可以被继承。final成员变量表示常量,只能被赋值一次,赋值后值不再改变。文章还讨论了final类和final方法的应用场景,以及使用final方法的两个原因:锁定方法防止修改和提高执行效率。 ... [详细]
  • 如何提高PHP编程技能及推荐高级教程
    本文介绍了如何提高PHP编程技能的方法,推荐了一些高级教程。学习任何一种编程语言都需要长期的坚持和不懈的努力,本文提醒读者要有足够的耐心和时间投入。通过实践操作学习,可以更好地理解和掌握PHP语言的特异性,特别是单引号和双引号的用法。同时,本文也指出了只走马观花看整体而不深入学习的学习方式无法真正掌握这门语言,建议读者要从整体来考虑局部,培养大局观。最后,本文提醒读者完成一个像模像样的网站需要付出更多的努力和实践。 ... [详细]
  • React基础篇一 - JSX语法扩展与使用
    本文介绍了React基础篇一中的JSX语法扩展与使用。JSX是一种JavaScript的语法扩展,用于描述React中的用户界面。文章详细介绍了在JSX中使用表达式的方法,并给出了一个示例代码。最后,提到了JSX在编译后会被转化为普通的JavaScript对象。 ... [详细]
  • 本文介绍了Python字典视图对象的示例和用法。通过对示例代码的解释,展示了字典视图对象的基本操作和特点。字典视图对象可以通过迭代或转换为列表来获取字典的键或值。同时,字典视图对象也是动态的,可以反映字典的变化。通过学习字典视图对象的用法,可以更好地理解和处理字典数据。 ... [详细]
author-avatar
那年磕长头
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有