Vue五、Vue生命周期的理解以及各个阶段的应用

我刚开始学框架的时候听到最多的应该就是生命周期这几个字眼了。
对于生命周期我的理解是:就是一个vue实例从开始创建到数据渲染等操作完成到最后销毁的过程。
简单来说就是你写的组件从打开的那一刻起到消失的那一刻止,中间经历的所有过程。

vue的生命周期

一、各个阶段

1 - beforeCreate - 初始化之前

 实例刚刚被创建出来,此时, `data` 和 `methods`属性还没有初始化

2 - Created - 创建完成(只触发一次)

在实例创建完成后被立即调用。
在这一步,实例已完成以下的配置:数据观测 (data observer),  `data` 和 `methods`属性运算,watch/event 事件回调。
然而,挂载阶段还没开始,`$el `属性目前尚不可用,还没有开始编译。

3 - beforeMount - 挂载之前

  此时已经完成了模板的编译,但是还没有开始挂载,相关的`render` 函数首次被调用。

4 - mounted - 实例被挂载后调用

  此时,已经将编译好的模板,挂载到了页面指定的容器中显示

5 - beforeUpdate - 数据更新前

  状态更新之前执行此函数, 此时 data 中的状态值是最新的,但是界面上显示的 数据还是旧的,因为此时还没有开始重新渲染DOM节点.
  这里适合在更新之前访问现有的 DOM,比如`手动移除已添加的事件监听器`。

6 - Updated - 被更新之后

  实例更新完毕之后调用此函数,此时 data 中的状态值 和 界面上显示的数据,都已经完成了更新,界面已经被重新渲染好了!
  然而在大多数情况下,你应该避免在此期间更改状态。如果要相应状态改变,通常最好使用`computed 或 watcher`取而代之。

7 - activated / deactivated - 被 keep-alive 缓存的组件(激活时/停用时)调用。

   包裹动态组件时,会缓存不活动的组件实例,而不是销毁它们。
   是一个抽象组件:它自身不会渲染一个 DOM 元素,也不会出现在组件的父组件链中。
  当组件在  内被切换,它的 activated 和 deactivated 这两个生命周期钩子函数将会被对应执行。
  主要用于`保留组件状态或避免重新渲染`。

8 - beforeDestroy - 销毁之前

  实例销毁之前调用。在这一步,实例仍然完全可用。

9 - destroyed - 销毁之后

  实例销毁后调用。调用后,Vue 实例`指示的所有东西都会解绑定`,所有的`事件监听器会被移除`,所有的`子实例也会被销毁`。 

二、实例(在后缀名为.vue的文件中)

下面的内容都是常用的





三、思考

(1)、初始化是什么意思,销毁的具体表现在哪里?

(2)、vue底层是如何实现生命周期的,很奇妙的东西?

你可能感兴趣的:(Vue五、Vue生命周期的理解以及各个阶段的应用)