vue created 调用方法_vue 基础-生命周期 lifecycle 的执行顺序和作用

691735471617628713500a1c87ac57c6.png

前言

《vue 基础》系列是再次回炉 vue 记的笔记,除了官网那部分知识点外,还会加入自己的一些理解。(里面会有部分和官网相同的文案,有经验的同学择感兴趣的阅读)

平时开发中,我真的不太使用生命周期相关的方法。但必须明确的是,生命周期在整个 vue 具有非常重要的作用,如果你了解它将对理解整个 vue 会更容易;同时在遇到问题时也能有个导向性的判断。

此篇简单说下生命周期的过程,以及方法调用。

生命周期的整个过程

借用 vue 官网的图,仔细全览下基本就对生命周期的过程有个粗略的认识了。

850c3b3e03408c16becd9bb2831b68bf.png

我这里没必要重复细说了,按我自己理解讲这个过程:

  1. new 一个 Vue 实例
  2. 初始化 event($on、$off 等) 和 lifecycle
  3. 触发钩子 beforeCreate
  4. 初始化 inject、data、computed、watch、provide
  5. 触发钩子 created
  6. 判断 el 属性(是否调用 $mount,你在源码能看到两个 $mount 的声明),判断 template 属性(决定渲染模板)
  7. 触发钩子 beforeMount
  8. 替换 el 标签内容,实现元素挂载
  9. 触发钩子 mounted
  10. definedReactive 响应式的定义在初始化的时候已经完毕了,当数据更新,触发钩子 beforeUpdate 、 updated
  11. 销毁时,触发钩子 beforeDestroy
  12. 移除事件监听、绑定数据
  13. 销毁完, 触发钩子 destroyd

钩子触发顺序

这个例子,调用了所有生命周期的钩子,用来说明他们的执行顺序(注意 activated 和 deactivated 是 keepalive 专用的):

82477813ba485334ef4b5990d25d4fc3.png

直接看下图,当 created 时,开启一个 timer 定时器用来确认组件的销毁情况。

e31eb3d33ec9ddc57e006c8700b4c06c.png
d89a939c8b69b50e5a58652ac76c00d6.gif
5afeefbae0054eeea242c80506a6f54d.png

有什么细节问题

beforeCreate 和数据响应式

因为 beforeCreate 是最开始初始化的,数据响应和相关事件和监听在其后,所以有类似功能处理需要避免。

created 获取不到 dom 元素

它是指完成了数据观察、相关属性方法的计算,并没有把我们的模板替换到 html 上,不要试图在这个钩子里调用 dom 相关的 api。

如果你想获取整个客户端的高度的话,建议放在 mounted 中。

不要忘记移除掉定时器等

beforeDestroy 不是没有用,在这环节中,vue 的实例仍然有效,你可以移除定义的 timer ,以免引起不必要的错误。

总结

生命周期贯穿整个 vue 的设计思想,理解好它能写出让别人能更容易“看得懂的”代码,千万不能张冠李戴的乱用。

另外上面那张 vue 整个生命周期的图 ,正如官网所说,随着我们使用的深入,它的意义会越来越大。

关于我

一位“前端工程师”,乐于实践,并分享前端开发经验。

如果有问题或者想法,欢迎各位评论留言,愿大家共同进步。

关注【前端雨爸】,查阅更多前端技术心得。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/244678.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

php 获取图片字节,php内置函数获取图片类型-exif_imagetype

在PHP获取图片类型可以使用PHP内置函数中的 exif_imagetype预定义常量定义有以下常量,并代表了 exif_imagetype() 可能的返回值:图像类型常量 值 常量1 IMAGETYPE_GIF2 IMAGETYPE_JPEG3 IMAGETYPE_PNG4 IMAGETYPE_SWF5 IMAGETYPE_PSD6 IMAGETYPE_BMP7 IM…

python谱聚类算法_谱聚类(spectral clustering)原理总结

谱聚类(spectral clustering)是广泛使用的聚类算法,比起传统的K-Means算法,谱聚类对数据分布的适应性更强,聚类效果也很优秀,同时聚类的计算量也小很多,更加难能可贵的是实现起来也不复杂。在处理实际的聚类问题时&…

php 获取文件大小 修改时建,php遍历目录输出文件大小,类型,修改时间.

$dir"C:/THsoft";//这是一个目录地址 也是根目录if (is_dir($dir)){//判断$dir是否是一个目录if ($dhopendir($dir)){//dh变量用来接收opendir的返回信息 如果为真 则执行whilewhile (($filereaddir($dh))!false){ //readdir()函数会返回一个文件的名称的echo …

vba 提取 json某个值_Excel中提取不重复值的方法汇总(5种基础+VBA+1个自定义函数)...

各位朋友,你们好,今天和你们分享Excel中提取不重复值的几种方法,着重介绍【5种】基础操作方法,另外附送一个VBA去重代码,拿去就可以直接使用。一、基础操作方法1、数据工具直接去重(见下图)数据工具去重2、高级筛选(见…

mysql distinct 条件,多行条件下的mysql distinct列

我有一个mysql数据库(item_preset)与下表:--------------------------------| id | preset_id | item_id | value |--------------------------------| 1 | 1 | 1 | 2 || 2 | 1 | 2 | 1 || 3 | 1 | 4 | 60 || 4 | 1 | 3 | 16 || 5 | 1 | 3 | 17 || 6 | 1 | 3 | 18 |…

python time 语句_python的time模块总结

python的time模块与random模块目录time模块time模块三种时间表示在Python中,通常有这几种方式来表示时间:时间戳(timestamp) : 通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量。我们运行“type(time.time())…

mysql maxconnections 最大值,MySQL性能优化之max_connections配置参数浅析

MySQL的max_connections参数用来设置最大连接(用户)数。每个连接MySQL的用户均算作一个连接,max_connections的默认值为100。本文将讲解此参数的详细作用与性能影响。与max_connections有关的特性MySQL无论如何都会保留一个用于管理员(SUPER)登陆的连接,…

tomcat temp 大量 upload 文件_原创 | 浅谈URI中的任意文件下载

点击上方蓝字 关注我吧引言文件下载是比较常见的业务。常见的接口格式为/download?fileNamexxx.png,整个过程若没过滤目录穿越符号…/或者未对下载的路径进行处理限制。当传入的filename参数为../../etc/passwd即可穿越路径达到任意文件下载的效果。有些接口在尝试获取某一文件…

mysql编写函数 求1 n 偶数之和,编写求1 2 3 - n的函数.在main函数中调用该函数

输入两个正整数m,n,编写求阶乘的函数,计算m!/(n!*(m-n)!). C语言函数解答,谢谢.#includelongfactorial(intm,intn){longsum1,sum11;inti;if(m-n>n){for(im;i>m-n;i--)sum*i;for编写函数fun求1!2!3! …… n!的和,在main函中由键盘输入n值,并输出运算结果#includeintfun(in…

python range在for循环里的用法_PyThon range()函数中for循环用法

最初range和xrange都生成可以用for循环迭代的数字,然而在python2和3里实现方式并不完全一致,下面着重讲讲python3的range()函数for循环用法。1、函数语法range(start, stop, [step])2、参数说明start: 可选参数,计数从 start 开始。默认是从 …

matlab实现图像放大两倍,matlab图像处理基础知识0(双线性插值matlab实现--调整水平和垂直放大倍数)...

需求说明:图像处理FPGA实现前期算法准备当前算法:已通过matlab验证成功function scaler_bilinear()%-----------------------------0:配置输入输出--------------------------------m2; %放大或缩小的高度n2; %放大或缩小的宽度Iimread(F:ookDigital ima…

win10虚拟内存怎么设置最好_淘宝直通车时间段怎么设置?哪个时间段开最好?...

大家好,我是西瓜电商培训的子木。淘宝直通车一直都是商家们最受关注的一款推广工具,开过直通车的商家应该都知道在开直通车的时候是可以通过自己设定时间和金额的,所以很多商家可能会根据每天店铺的流量时间段来分析开车投入,商家…

php小于neq qe,PHP模板判断语句eq相等 ne、neq不相等, gt大于, lt小于

eq相等 ne、neq不相等, gt大于, lt小于 gte、ge大于等于 lte、le 小于等于 not非 mod求模 is [not] div by是否能被某数整除 is [not] even是否为偶数 is [not] even by $b即($a / $b) % 2 0 is [not] odd是否为奇 is not odd by $…

笔记本屏幕出现横条纹_笔记本支架+拓展坞+立式无线充:给你的桌面一个简单的品质升级...

一、写在前面如果每个女孩都想拥有一个自己的衣帽间的话,每个喜欢科技的男孩,都想拥有一个属于自己的书房或者说游戏间,而这其中书桌是陪伴我们最多的地方,怎么打造一个舒适好用的桌面,让桌面简单而有品质呢&#xff0…

excel 公式 单引号 concat_从Excel的数据类型说Python

转自:可乐的数据分析之路写在前面这节内容是python基础知识中的数据类型和运算符,可以回顾一下前两篇文章来复习一下:利用Excel学习Python:变量利用Excel学习Python:准备篇本来想分开写的,但发现好像分不开…

matlab slider不可移动,GUI界面能运行,但是_slider不能用,不能控制波长

下面是GUI的程序,在c的地方设置的是可见光的波长,但是lamda_slider不能进行控制,默认波长600e-9,运行后只有c [0 0 0;1 0 0]求解function varargout untitled(varargin)%UNTITLED M-file for untitled.fig% UNTITLED, by i…

xx是一个类型 这在给定的上下文_BERT, ELMo, amp; GPT-2: 这些上下文相关的表示到底有多上下文化?...

作者:Kawin Ethayarajh编译:ronghuaiyang (AI公园)具有上下文信息的词表示到底有多大程度的上下文化?这里给出了定量的分析。将上下文信息放到词嵌入中 — 就像BERT,ELMo和GPT-2 — 已经证明了是NLP的一个分…

不是有效的win32应用程序_杀毒软件有坑!三分之二的安卓杀毒软件的“主业”并不是杀毒...

更多全球网络安全资讯尽在E安全官网www.easyaq.com小编来报:奥地利杀毒测试机构AV-Comparatives研究发现,大约三分之二的安卓杀毒软件并没有合格的杀毒功能,它们都是披着羊皮的狼!据外媒报道,奥地利杀毒测试机构AV-Com…

java字符串除法函数,java – 函数式编程:如何处理函数式编程中的异常或它的等价物...

以下显示了如何在Haskell中完成它.基于类型siginure divide :: Int – > Int – >无论[Char] Int,您都可以看到函数除法将返回Left字符串或Right Int.要么是代数数据结构,还有更多,你可以自己编写.divide :: Int -> Int -> Either [Char] Intdivide dividend divis…

phpfpm内存越来越高_硬件集成度越来越高 未来DIY玩法方向已定?

【PConline 杂谈】前一阵子,英特尔发布了他们家的黑科技处理器,代号为Lakefield。能称得上黑科技那肯定是有点东西的,这款处理器采用了3D封装工艺,将内存颗粒也封装进处理器里面。这样的话处理器、内存和显卡这些大件都集成在一块…