VUE2中的MVVM模式詳解
MVVM 模式
官方解釋:Vue 雖然沒有完全遵循 MVVM 模型,但是 Vue 的設(shè)計(jì)也受到了它的啟發(fā)。因此在文檔中經(jīng)常會(huì)使用 vm (ViewModel 的縮寫) 這個(gè)變量名表示 Vue 實(shí)例。
什么是 MVVM 模式?
MVVM 是一種新的開發(fā)模式,對(duì)比傳統(tǒng)模式,例如我們要更新 DOM ,一般都是通過 JavaScript 處理數(shù)據(jù)然后操作 DOM API 將數(shù)據(jù)渲染到頁面上。后續(xù)每一次修改數(shù)據(jù)后,都要重新調(diào)用 DOM API 進(jìn)行數(shù)據(jù)渲染。當(dāng)用戶操作表單信息后,也要將數(shù)據(jù)同步到 JavaScript 數(shù)據(jù)中,這一系列操作將會(huì)變得很繁瑣。而在 MVVM 模式中,我們只要關(guān)心數(shù)據(jù)層面,而不需要關(guān)心渲染邏輯層面,假設(shè)我們修改 JavaScript 中的數(shù)據(jù)后,Vue 會(huì)自動(dòng)實(shí)時(shí)將數(shù)據(jù)渲染到頁面上,當(dāng)我們操作視圖中表單的數(shù)據(jù)時(shí),Vue 也會(huì)實(shí)時(shí)的將數(shù)據(jù)同步到 JavaScript,并不需要我們自己手動(dòng)調(diào)用操作 DOM API 的一系列操作。
MVVM 主要分為 Model、View、ViewModel 三者
- Model:代表數(shù)據(jù)模型,數(shù)據(jù)和業(yè)務(wù)邏輯都在 Model 層中定義
- View:代表 UI 視圖,負(fù)責(zé)數(shù)據(jù)的展示
- ViewModel:負(fù)責(zé)監(jiān)聽 Model 中數(shù)據(jù)的改變并且控制視圖的更新
MVVM 模式簡化了界面與業(yè)務(wù)的依賴,解決了數(shù)據(jù)頻繁更新。MVVM 在使用當(dāng)中,利用雙向綁定技術(shù),使得 Model 變化時(shí),ViewModel 會(huì)自動(dòng)更新,而 ViewModel 變化時(shí),View 也會(huì)自動(dòng)變化。
以下通過代碼的方式進(jìn)行了解 Model、View、ViewModel
<template>
<div id="app">{{ message }}</div>
</template>在 template 中的代碼就相當(dāng)于 View 視圖層
const app = new Vue({
el: '#app',
data: function () {
return {
message: 'Hello Vue!'
}
}
})其中選項(xiàng) data 就是 Model 數(shù)據(jù)層,而 new Vue 則是 ViewModel 控制層,負(fù)責(zé)監(jiān)聽數(shù)據(jù)層發(fā)生變化,更新視圖層。監(jiān)聽視圖層發(fā)生變化更新數(shù)據(jù)層。
以上就是VUE2中的MVVM模式詳解的詳細(xì)內(nèi)容,更多關(guān)于VUE2 MVVM模式的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Vue 固定頭 固定列 點(diǎn)擊表頭可排序的表格組件
這篇文章主要介紹了Vue 固定頭 固定列 點(diǎn)擊表頭可排序的表格組件的相關(guān)資料,需要的朋友可以參考下2016-11-11
基于Vue2實(shí)現(xiàn)歌曲播放和歌詞滾動(dòng)效果
這篇文章主要介紹了如何基于Vue2實(shí)現(xiàn)歌曲播放和歌詞滾動(dòng)效果,文中通過代碼示例和圖文講解的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,感興趣的小伙伴可以自己動(dòng)手試一下2024-09-09
vue+webpack dev本地調(diào)試全局樣式引用失效的解決方案
今天小編就為大家分享一篇vue+webpack dev本地調(diào)試全局樣式引用失效的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-11-11
Vue利用openlayers實(shí)現(xiàn)點(diǎn)擊彈窗的方法詳解
點(diǎn)擊彈窗其實(shí)就是添加一個(gè)彈窗圖層,然后在點(diǎn)擊的時(shí)候讓他顯示出來罷了。本文將利用openlayers實(shí)現(xiàn)這一效果,快跟隨小編一起學(xué)習(xí)一下吧2022-06-06
vue?MVVM雙向綁定實(shí)例詳解(數(shù)據(jù)劫持+發(fā)布者-訂閱者模式)
使用vue也好有一段時(shí)間了,也算對(duì)其雙向綁定原理也有了解個(gè)大概,這篇文章主要給大家介紹了關(guān)于vue?MVVM雙向綁定(數(shù)據(jù)劫持+發(fā)布者-訂閱者模式)的相關(guān)資料,需要的朋友可以參考下2022-03-03
Vue項(xiàng)目分環(huán)境打包的實(shí)現(xiàn)步驟
這篇文章主要介紹了Vue項(xiàng)目如何分環(huán)境打包,實(shí)現(xiàn)方法大概分為六步驟,需要的朋友可以參考下2018-04-04
Vue.js+Layer表格數(shù)據(jù)綁定與實(shí)現(xiàn)更新的實(shí)例
下面小編就為大家分享一篇Vue.js+Layer表格數(shù)據(jù)綁定與實(shí)現(xiàn)更新的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-03-03

