vue有兩大核心:1、數(shù)據(jù)驅動,也就是數(shù)據(jù)的雙向綁定,讓視圖(DOM)的內(nèi)容隨著數(shù)據(jù)的改變而改變;2、組件化系統(tǒng),可實現(xiàn)擴展HTML元素,封裝可用的代碼。
本教程操作環(huán)境:windows7系統(tǒng)、vue2.9.6版,DELL G3電腦。
vue.js的兩大核心
-
數(shù)據(jù)驅動
-
組件化系統(tǒng)
1. 數(shù)據(jù)驅動,也就是數(shù)據(jù)的雙向綁定
-
Vue 響應式核心就是,getter 的時候會收集依賴,setter 的時候會觸發(fā)依賴更新
-
vue將遍歷data中對象的所有property,并使用 Object.defineProperty 把這些 property 全部轉為
getter/setter。 -
這些 getter/setter 對用戶來說是不可見的,但是在內(nèi)部它們讓 Vue 能夠追蹤依賴,在 property
被訪問和修改時通知變更。 -
每個組件實例都對應一個 watcher 實例,它會在組件渲染的過程中把“接觸”過的數(shù)據(jù) property 記錄為依賴。
-
getter的時候我們會收集依賴,依賴收集就是訂閱數(shù)據(jù)變化watcher的收集,依賴收集的目的是當響應式數(shù)據(jù)發(fā)生變化時,能夠通知相應的訂閱者去處理相關的邏輯。
-
setter 的時候會觸發(fā)依賴更新,之后當依賴項的 setter 觸發(fā)時,會通知 watcher,從而使它關聯(lián)的組件重新渲染。
2. 組件化系統(tǒng)
組件化
擴展HTML元素,封裝可重用的代碼。每一個組件都對應一個ViewModel。頁面上每個獨立的可視/可交互區(qū)域都可以視為一個組件。每個組件對應一個工程目錄,組件所需要的各種資源在這個目錄下就進維護。頁面是組件的容器,組件可以嵌套自由組合形成完整的頁面。
組件的核心選項:
-
模板(template):模板聲明了數(shù)據(jù)和最終展現(xiàn)給用戶的DOM之間的映射關系。
-
初始數(shù)據(jù)(data):一個組件的初始數(shù)據(jù)狀態(tài)。對于可復用的組件來說,這通常是私有的狀態(tài)。
-
接受的外部參數(shù)(props):組件之間通過參數(shù)來進行數(shù)據(jù)的傳遞和共享。
-
方法(methods):對數(shù)據(jù)的改動操作一般都在組件的方法內(nèi)進行。
-
生命周期鉤子函數(shù)(lifecycle hooks):一個組件會觸發(fā)多個生命周期鉤子函數(shù),最新2.0版本對于生命周期函數(shù)名稱改動很大。
-
私有資源(assets):Vue.js當中將用戶自定義的指令、過濾器、組件等統(tǒng)稱為資源。一個組件可以聲明自己的私有資源。私有資源只有該組件和它的子組件可以調(diào)用。
【