Lifecycle

今天要介绍的是Vue生命周期的四个阶段,先来看一张官网中Vue的生命周期图吧!
https://ithelp.ithome.com.tw/upload/images/20210812/20139183ewwAGe946b.png
首先当然是要建立一个vue的实体也就是我们在每个专案中都会看到的new Vue()
接着就是进入Vue的4个阶段
第一部分是初始化阶段:
当我们把值injection到资料中,会触发befoeCreate和created两个hook,在befoeCreate时我们的资料和元素都还没有被建立,要到了created的阶段才有真正完成create的动作,但是create的时候我们的element还是没有被挂载完成的喔!
第二部分是挂载阶段:
这里是挂载前後的两个hook,一个是beforeMount它是在要显示到网页画面之前的挂载,也就是在complier之前会走到beforeMount;而另一个是mounted就是真正的挂载到画面上,所以这个时候我们才能真正的去使用element
第三部分是更新阶段:
这是一个会很频繁触发的阶段,因为我们的资料只要有做变动就会触发到beforeUpdate和Updated
最後一部分是销毁阶段
beforeDestroy是销毁前的阶段,是最後可以操作里面资料的阶段,当进入destroyed阶段就是整个生命周期的结束

进入今天的实作前我们先来看官网上的一段说明

Don’t use arrow functions on an options property or callback, such as created: () => console.log(this.a) or vm.$watch('a', newValue => this.myMethod()). Since an arrow function doesn’t have a this, this will be treated as any other variable and lexically looked up through parent scopes until found, often resulting in errors such as Uncaught TypeError: Cannot read property of undefined or Uncaught TypeError: this.myMethod is not a function.

这里他告诉我们不要使用arrow functions去做生命周期的hook,因为在箭头函式中是没有this的,所以他会使用到父层的this

接下来我们使用console.log方法到chrome的console来看一下生命周期的变化吧!
https://ithelp.ithome.com.tw/upload/images/20210912/201391830H6wQeKdhc.jpg
这是刚开启的画面,从Console中我们可以看到资料已经挂载在我们的画面上,也就是走到了我们的mounted阶段

接下来在输入框中输入名字,每输入一个字以及按下Enter它就会进入一次更新阶段
https://ithelp.ithome.com.tw/upload/images/20210912/20139183D7NunAtlsq.jpg
以上就是我们在画面上做修改时它会牵动beforeUpdate和updated的hook范例

github


<<:  做为应徵者,挖出团队隐藏的资讯

>>:  Day 18 - Rancher Catalog(v2.0~v2.4) 介绍

[Day 12] 当冲实验结果概述

一、总结 总结来说,今天研究了一整天论文, 该篇论文对蒐集5分线数据,并以此预测之後的股价倾向, 与...

Day 6 - Loop

回圈提供一个快速又简洁的方法来重复地做某件事,有了回圈,在取得资料时就方便许多。 for loop ...

RISC-V: U-type Load Immediate指令

每日一 Bug, 其实作天就有发现 get_imm() 运算结果怪怪的, 如果会 Sign-Exte...

Day20 vue.js椅毒供毒之整理code

写出不乾净的code跟WEED一样 一开始写的时候可能会感到轻松快乐 但是後续的维护或修改会把自己搞...

Day27:终於要进去新手村了-HTML DOM 基本观念

今天要先说到关於阶层的部分,因为明後天的文章会是关於HTML与JS简单的一些互动,一样是由彭彭影片内...