一、vue的宣告式渲染、條件與迴圈、事件繫結、雙向繫結。
2、created(建立後)
3、beforemount(載入前)
4、mounted(載入後)
5、beforeupdate(更新前)
6、updated(更新後)
7、beforedestroy(銷毀前)
8、destroyed(銷毀後)
vue第一次頁面載入會觸發四個鉤子函式,分別是beforecreate、created、beforemount和mounted。
dom渲染在mounted週期中就已經完成
vue的生命週期示意圖
簡單的說就是新建的vue第一步需要初始化時間&週期,在第二步進行之前有乙個建立vue例項前得鉤子函式(beforecreate),完成後才能進入第二步初始化data和methods,例項建立完成之後的鉤子函式(created),在指定完元素和模板之後進行編譯(把data物件裡面的資料和vue語法寫的模板編譯成html。
mounted
1 .在mounted裡面修改data裡面的資料,並不是想要的直接就拿mounted裡面的修改過的值渲染介面,而是還會先拿data裡面的初始值進行渲染,然後走beforeupdate這裡拿新的資料進行渲染
2 .這是不是說如果想要修改data裡面的資料,要在beforemounted的時候修改呢
3 .其實beforemounted也是先按照預設值進行渲染,如果beforemounted裡面修改資料比較慢的話,他是不會等著的,還是會直接執行下乙個生命週期函式。也就是說所有的生命週期函式之間沒有done的操作
4 .如果在beforemounted裡面加乙個setinterval()來延遲修改值的話,也會觸發beforemounted函式
5 .往下看其實發現在mounted生命週期之前修改data裡面的資料都是在修改虛擬dom,直到mounted之後任何修改才會被渲染到頁面上。
6 .所以理論上只要在mounted之前修改資料都行,比如mounted裡面進行ajax請求,也是這個原理
7 .這個還需要再看下原始碼,應該就能記得比較清楚
8 .掛載頁面。
beforecreate
1 .進行初始化事件,this指向建立的例項
2 .不能訪問到data
3 .不能訪問computed
4 .不能訪問watch
5 .不能訪問methods
6 .以上的方法和資料
7 .用來初始化非響應變數
created鉤子
1 .例項建立完成
2 .資料已經和data屬性繫結,此時放在data中的屬性值發生改變的同時,檢視也會改變
3 .可以初始化ajax請求了
4 .可以訪問data
5 .可以訪問computed
6 .可以訪問watch
7 .可以訪問methods
8 .可以訪問到以上的方法和資料
9 .未掛載到dom
10 .不能訪問到ref屬性內容為空陣列
beforemount
1 .判斷是否有el選項,有就繼續,沒有就停止編譯,除非呼叫vm.$moune(el)
2 .是否有template引數選項
1 .有template引數選項,將模板編譯為render函式2 .沒有template選項,將外部html作為模板編譯3 .template中的模板優先順序要高於outer html的優先順序
3 .如果vue物件中還有乙個render函式的話,那麼又會先渲染render函式裡面的內容。所以這是有優先順序的4 .模板編譯完成,但是未掛載,無法獲取dom
5 .給例項物件新增$el成員
6 .在掛載開始前被呼叫,在beforemount之前,會找到對應的template,並編譯成render函式
mounted
1 .在mounted之前還是通過}進行佔位的,因為還沒有掛載到頁面上,還是在js中以虛擬dom形式存在的
2 .mounted之後換成了我們想要的樣子
3 .例項掛載到dom上,此時可以通過dom api獲取到dom節點。
4 .$ref屬性可以訪問
5 .常用於獲取vnode資訊ajax請求
beforeupdate
1 .當data中的資料發生了改變,會觸發對應元件的重新渲染
2 .響應式資料更新時呼叫,發生在虛擬dom打補丁之前
3 .適合在試圖更新之前訪問現有dom,比如手動移除或者新增事件***
updated
1 .虛擬dom重新渲染和打補丁之後呼叫,元件dom已經更新,可執行依賴dom的操作
2 .避免在這個鉤子中運算元據,不然可能陷入死迴圈
beforedestory
1 .例項銷毀之前呼叫,這一步例項仍然可以使用,this仍然可以獲取例項
2 .常用於銷毀定時器,解綁全域性事件,銷毀外掛程式物件等操作
destoryed
1 .例項銷毀之後呼叫,呼叫後,vue例項指示的所有東西都會解綁,所有事件***都會被移除,所有子例項也會被銷毀、
Vue基礎知識
vue.js的基本使用 1.引入vue.js 1 cdn 3 模組化安裝 npm i vue d s cnpm i vue yarn add vue 2.初始化vue 1 必須有乙個html容器,決定vue.js的作用範圍 2 初始化 new vue options data 資料 3 資料繫結 宣...
VUE基礎知識
1 全域性定義 每個元件的命名不可重複 2 字串模板 缺乏語法高亮,可讀性較差 1 屬性 屬性書寫方式 props type name list 屬性時單向資料流,不可在子元件更改父元件傳遞的值,可通過onchange方法修改。2 事件 3 插槽 插槽是元件的一塊html模板,其顯示與否由父元件決定...
Vue基礎知識
資料雙向繫結 指令帶有v 的,表示vue特有的屬性,他們會在渲染的dom上,應用特殊的響應式行為 或者 click me v model 會忽略所有表單元素的 value checked selected attribute 的初始值 而總是將 vue 例項的資料作為資料 你應該通過 j ascri...