[toc]
### vue生命周期
```
beforeCreate
created: 无法获取dom
beforeMount
mounted
updated
beforeDestroyed
destroyed
```
#### 1.beforeCreate
在实例初始化之后,在initState之前被vue内部的callHook方法触发了beforeCreate里的回调函数,所以这个时候data中的数据还不是响应式的,无法获取到
```js
initLifecycle(vm)
initEvents(vm)
initRender(vm)
callHook(vm, 'beforeCreate') // 在 initState 之前调用
// 注入
initInjections(vm) // resolve injections before data/props
// 响应式
initState(vm)
initProvide(vm) // resolve provide after data/props
callHook(vm, 'created')
```
#### 2.created
实例已经创建完成之后被调用。在这一步,实例已完成以下的配置:数据观测(data observer),属性和方法的运算, watch/event 事件回调。
在执行data()方法前props属性有数据已经可以访问,watch和computed监听函数此时为null,此时this.computed里的计算属性值为undefined。data函数执行完后,watch和computed监听函数才可用,因为data函数执行完后,data函数return的属性这时才可用。然而,挂载阶段还没开始,$el 属性目前不可见。
#### 3.beforeMount
在挂载开始之前被调用,在这之后组件的 render 函数首次被调用
#### 4.mounted
可以操作dom, el被新创建的vm.$el替换,并挂载到实例上去之后调用该钩子
#### 5.beforeUpdate
数据更新时调用,发生在虚拟 DOM 重新渲染和打补丁之前。你可以在这个钩子中进一步地更改状态,这不会触发附加的重渲染过程
#### 6.updated
由于数据更改之后,导致虚拟DOM重新渲染和打补丁,在这之后会调用该钩子
#### 7.beforeDestroyed
实例销毁之前调用,在这时,实例还可以使用
#### 8.destroyed
Vue 实例销毁后调用。调用后,Vue 实例指示的所有东西都会解绑定,所有的事件监听器会被移除,所有的子实例也会被销毁。
#### 9.activated
keep-alive 组件激活时调用。
#### 10.deactivated
keep-alive 组件停用时调用。
- 0. MVC和MVVM
- 1. v-model无法实时更新的解决办法
- 1. Vue 指令
- 1. v-cloak&v-text&v-html
- 2. v-bind
- 3. v-model
- 7. v-for指令的几种使用方式
- 8. v-if和v-show的使用
- 2. 事件修饰符
- 3. 通过属性设置样式
- 1. 通过属性绑定设置元素class
- 2. 通过属性绑定设置元素style
- 4. 自定义指令
- 11. 自定义全局指令
- 12. 自定义私有指令
- 5. 过滤器
- 6. 键盘指令
- 7. 生命周期
- 8. vue-resource
- 9. 动画
- 1. 使用过渡类名实现动画
- 2. 使用animate.css实现动画
- 3. 钩子函数实现小球半场动画
- 10. 组件
- 1. 全局组件的创建方式
- 2. 私有组件的创建方式
- 3. 组件中的data和methods
- 4. component元素
- 5. 组件配合transition元素实现动画
- 6. 父组件传参传方法
- 11. 路由
- 1. 什么是路由
- 2. vue-router的使用
- 3. 使用router-link&query方式传递参数
- 4. 使用param传值
- 5. 使用children属性实现路由嵌套
- 6. router-view之间获取父级data
- 7. 实现路由跳转的几种方式
- 12. 设置缓存
- 13. $ref 操作DOM&获取自定义属性
- 14. 初始化一个项目
- 15. 使用并封装一个axios方法
- 17. vuex
- 18. watch 监听 data数据
- 19. keep alive 缓存路由组件
- vue效果实现
- 1. 实现顶部根据滑动渐隐渐现
- 2. 制作一个动画包裹组件
- 20. vue 中的数据类操作
- 第三方工具&ui
- 1. vant-ui
- 1. 上拉加载更多
- 2. 使用图片预加载
- 2. better-scroll
- 1. 实现上下滑动效果
- 2. 实现两栏式点击滑动跳转
- vue3
- compositionApi
- 2. ref 和 reactive
- 4. watch
- 5. watchEffect
- 7.使用ref操作dom
- effect副作用
- 1. 新特性
- 3. 生命周期
- 6.定义props
- 实现自定义组件v-model
- vue面试题
- 1.对mvvm的理解
- 2.vue2和vue3响应式数据的理解
- 3.vue中如何检测数组的变化
- 4.vue中如何进行依赖收集
- 5.如何理解vue中的模板编译原理
- 6.vue生命周期以及原理
- 7.vue组件data为什么必须是个函数
- 8.vue-router原理
- 9.vue.mixin原理
- 10.$nextTick原理
- 11.computed和watch的区别
- vue SSR服务端渲染
- 1.什么是服务端渲染
- 2.快速创建服务端渲染