Vue MVVM模型與data及methods屬性超詳細講解
1.MVVM模型
??
MVC和MVVM都是一種軟件的體系結(jié)構(gòu)
- MVC是Model – View –Controller的簡稱,是在前期被使用非??蚣艿募軜?gòu)模式,比如iOS、前端;
- MVVM是Model-View-ViewModel的簡稱,是目前非常流行的架構(gòu)模式;
Vue的整個設計受到MVVM模型的影響

MVVM模型:
- M:模型(Model):data中的數(shù)據(jù)
- V:視圖(view):模板代碼
- VM:視圖模型(ViewModel):Vue實例
<div id="root">
<h1>school:{{name}}</h1>
<h1>address:{{address}}</h1>
<h1>test:{{1+1}}</h1>
</div>
<script type="text/javascript">
Vue.config.productionTip = false; //設置為 false 以阻止 vue 在啟動時生成生產(chǎn)提示。
const vm = new Vue({
el: "#root",
data: {
name: "xiaozhao",
address: "henan",
a: 1,
},
});
console.log(vm);- data中所有的屬性,最后都出現(xiàn)在了vm身上
- vm身上的所有屬性,及vue原型上的所有屬性,在Vue模板中都可以直接使用
2.data屬性
??
data屬性是傳入一個函數(shù),并且該函數(shù)需要返回一個對象:
- 在Vue2.x的時候,可以傳入一個對象或者一個函數(shù);
- 在Vue3.x的時候,必須傳入一個函數(shù)
data中返回的對象會被Vue的響應式系統(tǒng)劫持,之后對該對象的修改或者訪問都會在劫持中被處理:
- 所以我們在template或者app中通過 {{counter}} 訪問counter,可以從對象中獲取到數(shù)據(jù);
- 所以我們修改counter的值時,app中的 {{counter}}也會發(fā)生改變;
data有2種寫法
- 對象式
- 函數(shù)式
對象式
data: {
name: "zj",
},
函數(shù)式
data function(){} data不能寫箭頭函數(shù) this指向問題
data() {
console.log("@@@", this); //此處的this是vue實例對象
return {
name: "zj",
};
},
<div id="app">
<h2>{{message}}</h2>
<button @click="changeMessage">改變message</button>
</div>
<script src="./lib/vue.js"></script>
<script>
const app = Vue.createApp({
data: function () {
return { message: "Hello Data" };
},
//函數(shù)式
methods: {
changeMessage: function () {
this.message = "hello hhh";
},
},
});
app.mount("#app");
3.methods屬性
??
methods屬性是一個對象,通常我們會在這個對象中定義很多的方法:
- 這些方法可以被綁定到 模板中;
- 在該方法中,我們可以使用this關鍵字來直接訪問到data中返回的對象的屬性;
<script src="./lib/vue.js"></script>
<script>
const app = Vue.createApp({
data: function () {
return {
counter: 0,
};
},
//methods:option api
methods: {
increment: function () {
this.counter++;
},
increment() {},
// methods中的函數(shù)不能寫成箭頭函數(shù)
increment: () => {
console.log(this);
},
},
});
app.mount("#app");在方法中訪問屬性
在 methods 方法中訪問 data 的數(shù)據(jù),可以直接通過 this.屬性名 的形式來訪問。
到此這篇關于Vue MVVM模型與data及methods屬性超詳細講解的文章就介紹到這了,更多相關Vue MVVM模型內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Element-UI表格嵌入popover遇到的問題及解決方案
在表格中我們通常需要在每一行的一些單元格中顯示popover,這篇文章主要給大家介紹了關于Element-UI表格嵌入popover遇到的問題及解決方案,需要的朋友可以參考下2023-11-11
前端配合后端實現(xiàn)Vue路由權(quán)限的方法實例
一開始我還以為vue的路由只能用在工程化的項目里面,其實不然,下面這篇文章主要給大家介紹了關于前端配合后端實現(xiàn)Vue路由權(quán)限的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下2022-05-05
Vue源碼解讀之Component組件注冊的實現(xiàn)
這篇文章主要介紹了Vue源碼解讀之Component組件注冊的實現(xiàn),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-08-08
ElementUI?select彈窗在特定場合錯位問題解決方案
這篇文章主要介紹了ElementUI?select彈窗在特定場合錯位問題解決方案,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧2024-01-01
vue實現(xiàn)樹形結(jié)構(gòu)樣式和功能的實例代碼
這篇文章主要介紹了vue樹形結(jié)構(gòu)樣式和功能,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2019-10-10

