[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.快速創建服務端渲染