vue中的mvvm模式講解
學(xué)習(xí)了MVVM模式
起先還覺得有點難,后面與雙向數(shù)據(jù)綁定鏈接起來還是很容易理解的。
那么什么是MVVM呢?
不明思議咋們肯定和我想的一樣 每個單詞的首寫字母唄!
對沒錯就是它 Model-View-ViewModel。 可以實現(xiàn)我們的雙向數(shù)據(jù)綁定
下面我來用我的理解解析下它們之間的關(guān)系:
哈哈 有點小尷尬哈
先來說下View與Model之間有聯(lián)系嗎?
在MVVM架構(gòu)下,View 和 Model 之間其實并沒有直接的聯(lián)系,而是通過ViewModel進行交互,Model 和 ViewModel 之間的交互是雙向的, 因此View 數(shù)據(jù)的變化會同步到Model中,而Model 數(shù)據(jù)的變化也會立即反應(yīng)到View 上。
好啦,說到這可能有些小伙伴會問view 什么,Model是什么?
Model 層代表數(shù)據(jù)模型,也可以在Model中定義數(shù)據(jù)修改和操作的業(yè)務(wù)邏輯;
View 代表UI 組件,它負責(zé)將數(shù)據(jù)模型轉(zhuǎn)化成UI 展現(xiàn)出來,ViewModel 是一個同步View 和 Model的對象。
Vue是以數(shù)據(jù)為驅(qū)動的,Vue自身將DOM和數(shù)據(jù)進行綁定,一旦創(chuàng)建綁定,DOM和數(shù)據(jù)將保持同步,每當(dāng)數(shù)據(jù)發(fā)生變化,DOM會跟著變化。
現(xiàn)在明白了吧!
好啦 我們繼續(xù)談?wù)勊鼈內(nèi)咧g的關(guān)系呀 它們之間是不是有個三角戀吶
哈哈 不錯
ViewModel 通過雙向數(shù)據(jù)綁定把 View 層和 Model 層連接了起來,ViewModel里面包含DOM Listeners和Data Bindings,DOM Listeners和Data Bindings是實現(xiàn)雙向綁定的關(guān)鍵。DOM Listeners監(jiān)聽頁面所有View層DOM元素的變化,當(dāng)發(fā)生變化,Model層的數(shù)據(jù)隨之變化;Data Bindings監(jiān)聽Model層的數(shù)據(jù),當(dāng)數(shù)據(jù)發(fā)生變化,View層的DOM元素隨之變化。
mvvm有什么好處呢 當(dāng)然這個肯定有好處的 不然學(xué)它干哈
1. 低耦合。View可以獨立于Model變化和修改,一個ViewModel可以綁定到不同的View上,當(dāng)View變化的時候Model可以不變,當(dāng)Model變化的時候View也可以不變。
2. 可重用性??梢园岩恍┮晥D的邏輯放在ViewModel里面,讓很多View重用這段視圖邏輯。
3. 獨立開發(fā)。開發(fā)人員可以專注與業(yè)務(wù)邏輯和數(shù)據(jù)的開發(fā)(ViewModel)。設(shè)計人員可以專注于界面(View)的設(shè)計。
4. 可測試性??梢葬槍iewModel來對界面(View)進行測試
咋們一起走向vue之路吧
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,謝謝大家對腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請查看下面相關(guān)鏈接
相關(guān)文章
this.$router.push攜帶參數(shù)跳轉(zhuǎn)頁面的實現(xiàn)代碼
這篇文章主要介紹了this.$router.push攜帶參數(shù)跳轉(zhuǎn)頁面,this.$router.push進行頁面跳轉(zhuǎn)時,攜帶參數(shù)有params和query兩種方式,本文結(jié)合實例代碼給大家詳細講解,需要的朋友可以參考下2023-04-04
vuejs中監(jiān)聽窗口關(guān)閉和窗口刷新事件的方法
今天小編就為大家分享一篇vuejs中監(jiān)聽窗口關(guān)閉和窗口刷新事件的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-09-09
56個實用的JavaScript 工具函數(shù)助你提升開發(fā)效率
今天來看看JavaScript中的一些實用的工具函數(shù),希望能幫助你提高開發(fā)效率!需要的朋友可以參考下面文章的具體內(nèi)容2021-10-10
vue+canvas實現(xiàn)炫酷時鐘效果的倒計時插件(已發(fā)布到npm的vue2插件,開箱即用)
這篇文章主要介紹了vue+canvas實現(xiàn)炫酷時鐘效果的倒計時插件(已發(fā)布到npm的vue2插件,開箱即用) ,需要的朋友可以參考下2018-11-11
詳解vue中v-for和v-if一起使用的替代方法template
這篇文章主要介紹了vue中v-for和v-if一起使用的替代方法template,使用的版本是vue?2.9.6和element-ui:?2.15.6,通過實例代碼給大家講解的非常詳細,需要的朋友可以參考下2022-05-05

