vue.js的兩大核心
vue.js的兩大核心:1. 數據驅動 ------------- 2.組件系統
1. 數據驅動,也就是數據的雙向綁定
Vue 響應式核心就是,getter 的時候會收集依賴,setter 的時候會觸發依賴更新
vue將遍歷data中對象的所有property,並使用 Object.defineProperty
把這些 property 全部轉為 getter/setter。
這些 getter/setter 對用戶來說是不可見的,但是在內部它們讓 Vue 能夠追蹤依賴,在 property 被訪問和修改時通知變更。
每個組件實例都對應一個 watcher 實例,它會在組件渲染的過程中把“接觸”過的數據 property 記錄為依賴。
getter 的時候我們會收集依賴,依賴收集就是訂閱數據變化watcher的收集,依賴收集的目的是當響應式數據發生變化時,能夠通知相應的訂閱者去處理相關的邏輯。
setter 的時候會觸發依賴更新,之后當依賴項的 setter 觸發時,會通知 watcher,從而使它關聯的組件重新渲染。
2. 組件系統
組件的核心選項
1 模板(template):模板聲明了數據和最終展現給用戶的DOM之間的映射關系。
2 初始數據(data):一個組件的初始數據狀態。對於可復用的組件來說,這通常是私有的狀態。
3 接受的外部參數(props):組件之間通過參數來進行數據的傳遞和共享。
4 方法(methods):對數據的改動操作一般都在組件的方法內進行。
5 生命周期鈎子函數(lifecycle hooks):一個組件會觸發多個生命周期鈎子函數,最新2.0版本對於生命周期函數名稱改動很大。
6 私有資源(assets):Vue.js當中將用戶自定義的指令、過濾器、組件等統稱為資源。一個組件可以聲明自己的私有資源。私有資源只有該組件和它的子組件可以調用