1、Vue 是什么
Vue 是一套用于构建用户界面的渐进式框架。(渐进式的意思就是,没有强制要求你用我全部东西,你可以选择用一部分,也可以选择用完全部)
Vue 并没有完全遵循MVVM模型,因为 Vue 多了一个 ref 可以拿 dom 对象进行操作试图,这个操作违背了 MVVM
2、Vue 的生命周期
- beforeCreate(创建前):Vue 实例刚初始化,这时候 data 和 methods 都还没初始化。
- created(创建后):data 和 methods 都已经初始化好了,数据监听,计算属性,方法都已经准备好,页面还没挂载,所以 $el property 还不能用。
- beforeMount(挂载前):模板已经编译好了,还没挂载,此时显示的是旧页面。注意在服务端渲染没有这个阶段。
- mounted(挂载后):页面部署好,但不保证所有子组件都挂载完成,如果希望整个视图完成再操作的话,可以在内部用 vm.$nextTick 函数。注意在服务端渲染没有这个阶段。
- beforeUpdate(更新前):页面没变,数据更新了。注意在服务端渲染没有这个阶段。
- updated(更新后):页面和数据都是同步到最新的,和 mounted 一样,不保证所有子组件都完成渲染。注意在服务端渲染没有这个阶段。
- beforeUnmount(卸载前):还在运行状态,组件一切还在可用状态。注意在服务端渲染没有这个阶段。
- unmounted(卸载后):组件一切已不可用。注意在服务端渲染没有这个阶段。
- errorCaptured(错误传播):捕获一个来自后代组件错误时调用。
PS:Vue 3.0 版本后 beforeDestroy 和 destroyed 改为 beforeUnmount 和 unmounted。