1.??? vue常用的網(wǎng)站
vue官方文檔:https://cn.vuejs.org/v2/guide/
vue資源精選:http://vue.awesometiny.com/
vue GitHub地址:https://github.com/vuejs/vue
基于vue和element構(gòu)建的后臺前端解決方案:https://panjiachen.github.io/vue-element-admin-site/zh/
2MVVM的簡介
MVVM 由 Model,View,ViewModel 三部分構(gòu)成,Model
層代表數(shù)據(jù)模型,也可以在Model中定義數(shù)據(jù)修改和操作的業(yè)務(wù)邏輯;View 代表UI 組件,它負(fù)責(zé)將數(shù)據(jù)模型轉(zhuǎn)化成UI
展現(xiàn)出來,ViewModel 是一個同步View 和 Model的對象。
在MVVM架構(gòu)下,View 和 Model 之間并沒有直接的聯(lián)系,而是通過ViewModel進(jìn)行交互,Model
和 ViewModel 之間的交互是雙向的, 因此View 數(shù)據(jù)的變化會同步到Model中,而Model 數(shù)據(jù)的變化也會立即反應(yīng)到View
上。
ViewModel 通過雙向數(shù)據(jù)綁定把 View 層和 Model 層連接了起來,而View 和 Model
之間的同步工作完全是自動的,無需人為干涉,因此開發(fā)者只需關(guān)注業(yè)務(wù)邏輯,不需要手動操作DOM,
不需要關(guān)注數(shù)據(jù)狀態(tài)的同步問題,復(fù)雜的數(shù)據(jù)狀態(tài)維護(hù)完全由 MVVM 來統(tǒng)一管理。
3vue的簡單介紹
Vue.js 可以說是MVVM 架構(gòu)的最佳實踐,是一個JavaScriptMVVM庫,是一套構(gòu)建用戶界面的漸進(jìn)式框架。專注于 MVVM 中的 ViewModel,不僅做到了數(shù)據(jù)雙向綁定,而且也是一款相對比較輕量級的JS 庫,API 簡潔
4 vue的雙向數(shù)據(jù)綁定的原理
Vue.js 是采用 Object.defineProperty 的 getter 和setter,并結(jié)合觀察者模式來實現(xiàn)數(shù)據(jù)綁定的。當(dāng)把一個普通 Javascript 對象傳給 Vue 實例來作為它的 data 選項時,Vue將遍歷它的屬性,用 Object.defineProperty 將它們轉(zhuǎn)為 getter/setter。用戶看不到getter/setter,但是在內(nèi)部它們讓 Vue 追蹤依賴,在屬性被訪問和修改時通知變化。
5前端架構(gòu)圖
