Vue.js2.0是一套構建用戶界面的漸進式框架,目標是實現數據驅動和組件系統。
A 漸進式框架
1 Vue.js是一個提供MVVM數據雙向綁定的庫,只專注於UI層面,這是它的核心。它本身沒有解決SPA時的路由切換(vue-router), 2 也沒有解決大規模狀態管理(vuex),更沒有提供工程的構建方式(webpack)。 3 它給你的是充分的靈活性,在實現過程中,需要在此基礎上不斷添加配套工具(允許嘗試各種想用的方案)。 4 vuejs核心 + 生態圈,是漸進性增強的,是一個在整體選型更為靈活的棧。
B 聲明式渲染
1 Vue.js的核心是一個允許你采用簡潔的模板語法來聲明式的將數據渲染進DOM的系統。 2 DOM應盡可能是一個函數式到狀態的映射,狀態是唯一真相,而DOM是狀態的一個映射。
C 虛擬DOM渲染過程
1 Vuejs1.0中,把模板parse成DOM樹,然后去遍歷這個樹,提取其中的各種綁定,這是觀察數據與各自watchers取得聯系的過程。 2 Vuejs2.0中,引入虛擬DOM,編譯器parse模板時轉變為render函數,函數被調用時就會返回一個虛擬DOM樹。 3 這個樹非常輕量,只負責描述當前界面所應處的狀態。有了這個虛擬樹后,再交給一個patch函數,負責把虛擬DOM樹真正施加到真實的DOM上。 4 當重新需要渲染時,render會生成一個新的樹,將新樹與舊樹進行對比,得出需做出的改動,再通過patch函數施加修改。