元件中data為什麼是函式
阿新 • • 發佈:2021-02-04
技術標籤:筆記
data是一個函式,但是返回的是一個物件,如果data直接是一個物件,會造成聯動反應,即改變其中一個元件中的資料,其他的資料也會進行變化
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<div id="app">
<cpn></cpn>
<cpn> </cpn>
<cpn></cpn>
</div>
<template id="cpn">
<div>
<h2>當前計數{{count}}</h2>
<button @click="pre()">+</button>
<button @click="nex()">-</button>
</div>
</template>
< script type="text/javascript" src="../js/vue.min.js"></script>
<script type="text/javascript">
Vue.component('cpn',{
template:'#cpn',
//這個data是一個函式,每次呼叫這個函式的時候,生成的是不同的物件
//可以這麼理解,下面這三個物件的記憶體地址是不一樣的,因此三個資料是互不影響的,不會產生資料聯動
//通俗點來說,你可以理解為三個人互不影響
// function abc(){
// }
//var a1 = new abc();
//var a2 = new abc();
//var a3 = new abc();
data(){
return {
count : 0
}
},
methods:{
pre(){
count = this.count++
},
nex(){
count = this.count--
}
}
})
var app = new Vue({
el:'#app'
})
</script>
</body>
</html>
聯動反應的結果(牽一髮動全身)