1. 初始化
在 new vue() 之後。 vue 會呼叫 _init 函式進行初始化
初始化過程:
①初始化生命週期、事件、 props、 methods、 data、 computed 與 watch 等
②通過 object.defineproperty 設定 setter 與 getter 函式,用來實現「響應式」以及「依賴收集」
2.掛載元件
呼叫$mount掛載元件
3.編譯
*(如果是執行時編譯,即不存在render function但是存在template的情況,需要進行編譯步驟。)
①parse(解析):利用正則將模板轉換成抽象語法樹(ast);
②optimize(標記靜態節點做優化): 標記靜態節點,以後update的時候,diff演算法可以跳過靜態節點
③ generate**成字串):將抽象語法樹(ast)轉成字串,供render去渲染dom
經過以上步驟,就可以得到render funciton
4. 響應式
當 render function 被渲染時,會對data物件進行資料讀取,所以會觸發 getter 函式進行依賴收集,依賴收集的目的是將data裡的屬性放到觀察者(watcher)的觀察佇列中
在修改物件的值的時候,會觸發對應的 setter, setter 通知觀察者資料變化,需要重新渲染檢視。觀察者呼叫 update 來更新檢視
5.虛擬dom
render funtion 會被轉換成虛擬dom
虛擬dom實際上就是乙個js物件,從頂層dom層層描述dom,有tag, children, isstatic, iscomment等等許多屬性來做dom描述
6. 更新檢視
updata時,會將新舊vnode 一起傳入 patch,經過 diff 演算法得出它們的差異,將差異所對應的 dom 進行修改
session執行機制
session機制是一種伺服器端的機制,伺服器使用一種類似於雜湊表 的結構 也可能就是使用 雜湊表 來儲存資訊。當程式需要為某個客戶端的請求建立乙個session的時候,伺服器首先檢查這個客戶端的請求裡是否已包含了乙個session標識 稱為sessionid,如果已包含乙個sessionid則說明...
try catch finally執行機制
finally的執行 如下的程式所示,注釋中是執行的順序 public class test public static string test finally public static string test1 finally其實是僅在return 語句執行前執行,如果return 乙個函式,那...
runtime執行機制
這篇文章主要介紹的是runtime是什麼以及怎麼用!希望對讀者有所幫助!第乙個問題,1 runtime實現的機制是什麼,怎麼用,一般用於幹嘛?runtime是一套比較底層的純c語言api,屬於1個c語言庫,包含了很多底層的c語言api。在我們平時編寫的oc 中,程式執行過程時,其實最終都是轉成了ru...