#### 1. 熟練使用Vue的API、生命周期、鉤子函數
#### 2. MVVM框架設計理念
1. 傳統MVC構架:分為視圖層( 面向用戶 )、控制層( 面向視圖與數據 )、數據層( 面向程序 )
2. 視圖層發生了變更,需要控制層去通過數據層,數據層再反饋到視圖層
3. 控制層發生了變更,控制層通過數據層,數據層再反饋到視圖層
1. M(數據模型) V( 視圖 ) VM( vue幫我們實現了視圖與數據模型的雙向通信,不需要手動去操作DOM )
2. MVVM模型幫我們解決了視圖與模型之間的通信和控制,大大提高了開發效率,而且還不需要操作DOM,更新效率更高,這都是Vue幫我們做了實現
#### 3. Vue雙向綁定實現原理、Diff算法的內部實現
1. Vue通過Object.definedProperty來實現雙向綁定
2. 通過getter進行依賴收集,通過setter進行觀察,在數據變量的時候通知訂閱者更新視圖
3. Diff內部實現:是把真實DOM結構以JS對象抽象成一棵語法樹( AST ),用屬性來描繪DOM樹,當對DOM操作增刪改之類的操作時,實際只操作這個JS語法樹就行,當變更時,Vue通過diff算法去對比新老節點,實現最小更新,減少DOM操作,大大提高性能
#### 4. Vue事件機制
1. $on:添加自定義事件,由$emit觸發
2. $emit:用來觸發自定義事件
3. $off:解綁自定義事件
4. $once:監聽只能觸發一次的事件,觸發后銷毀這個自定義事件
#### 5. 從template轉換成真實DOM的實現機制
1. 將template模板解析成為AST抽象語法樹
2. 最后將解析好的AST語法樹轉換為render函數
#### 6. 對于編寫前端通用組件的思考
1. 組件單一職責,單個組件負責單個功能,但單一職責是建立在可利用的基礎之上,也不能封裝得過于細粒,具體場景具體考慮
2. 封裝基本功能,每個操作反饋對應的數據接口暴露給調用者
3. 內部接收屬性使用對象類型,保障數據格式質量
#### Vue&WebPack工程中解決跨域問題的三種方式
1. 使用webpack-dev-server的proxy功能由webpack服務端幫我們轉發
2. 前端自己模擬數據,使用before(app),使用express定義接口
3. 在服務端中啟動webpack,使用服務端的接口