1. 程式人生 > 其它 >元件中data為什麼是函式

元件中data為什麼是函式

技術標籤:筆記

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>

在這裡插入圖片描述
聯動反應的結果(牽一髮動全身)
在這裡插入圖片描述