vue.js的组件的data属性

每个组件也像每个Vue实例拥有自己的data属性和methods方法
<div id="app">
    <cpn></cpn>
  </div>
  <template id="cpn">
    <div>
      <h2>我是组件</h2>
      <h3>目前计数:{{count}}</h3>
    </div>
  </template>
  <script>
	  // 注册组件
	  Vue.component('cpn',{
		  template: '#cpn',
		  //组件的data不是一个对象,而必须是一个函数
	      data() {
			  	return {
			  		count: 0
	        }
      })
  	const app = new Vue({
		  el: '#app',
		  data: {
			  msg: '欢迎使用Vue.js'
		  }
	  })
  </script>

一个组件的 data 选项必须是一个函数,因此每个实例可以维护一份被返回对象的独立的拷贝。

<div id="app">
    <cpn></cpn>
    <cpn></cpn>
    <cpn></cpn>
  </div>
  <template id="cpn">
    <div>
      <h2>我是组件</h2>
      <h3>目前计数:{{count}}</h3>
      <button @click="add">+</button>
      <button @click="reduce">-</button>
    </div>
  </template>
  <script>
	  // 注册组件
	  Vue.component('cpn',{
		  template: '#cpn',
	      data() {
		  	return {
		  		count: 0
	        }
	      },
	      methods: {
		      add() {
		      	this.count++
		      },
		      reduce() {
		      	this.count--
	      }
      }
	})
  	const app = new Vue({
		  el: '#app',
		  data: {
			  msg: '欢迎使用Vue.js'
		  }
	  })
  </script>

在app实例中多次使用了组件,但是组件中的data是一个函数,且每次使用的组件,它的data函数返回的对象值是不同的内存地址,所以组件多次使用时,data的返回的对象中的值只是当前组件的值,不会改变其他正在使用中的组件的data。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值