携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第22天,点击查看活动详情
引言
首先简单概括vue的生命周期是从实例的创建到挂载、更新、销毁。vue是通过构建数据的一个框架,周期是起点到终点的一个过程的进程,生命周期是生命从出生到结束的过程。在使用vue时,都会创建一个vue实例,这个实例不仅是挂载vue框架的入口,也是MVVM思想中的VM。那么Vue实例从创建到销毁的整个过程,称为Vue实例生命周期。
每个vue实例在被创建时都要经过一系列的初始化过程。比如,需要设置数据监听、编译模板,将实例挂载到DOM并在数据变化时更新DOM等。在这个过程中,vue会运行一些生命周期钩子函数,在钩子函数中可以编写一些自定义方法,用于在vue整个生命周期的某些阶段实现特殊需求。
目的
在使用vue的整个过程中,归根结底都是对vue实例进行操作。因此。只有了解vue实例的生命周期,才可以更好地实现需要的业务逻辑。
vue实例生命周期共有8个钩子函数,分别为beforeCreate,created,beforeMount,mounted,beforeUpdate,updated,beforeDestroy,destroyed.这8个钩子函数都是vue实例的选项,也就是在new Vue()时都可以设置。
vue实例生命周期钩子函数及其含义
| 钩子函数 | 含义 |
|---|---|
| beforeCreate | vue实例进行初始化,此时实例的各个组件还没有完成初始化,因此不能访问data、computed、watch、methods的方法和数据,同时,vue实例的挂载点也没有进行初始化 |
| created | vue实例初始化完成,此时可以访问data、computed、watch、methods的方法和数据,但是依旧没有进行vue实例的挂载点初始化 |
| beforeMount | 将实例绑定到模板进行渲染,但并不会将实例挂载到页面上 |
| mounted | 将渲染好的模板绑定到页面上,此时实例完全创建好 |
| beforeUpdated | 数据变更时执行,在实例创建数据更改之前执行自定义逻辑或操作 |
| updated | vue实例更新完成的数据重新渲染到内存中的虚拟DOM上,再将虚拟DOM应用到页面上 |
| beforeDestroy | vue实例进入销毁阶段,此时实例上的data、methods、过滤器、指令等仍处于可用的状态,还没有真正执行销毁的过程 |
| destroyed | 此时实例被销毁 |