vue-属性与方法

每个Vue实例都会代理其data对象里面的所有属性:

var mydata= { a: 1 }
var vm = new Vue({
  el: '#example',
  data: mydata
})


vm.a===mydata.a //   ---->true


因为其响应式,无论是改变vm.a还是mydata.a,他们的值都会一起改变,但是!如果某属性是在创建了该实例后被添加进去的,则该属性不会触发视图更新


除了 data 属性, Vue 实例暴露了一些有用的实例属性与方法。这些属性与方法都有前缀$,以便与代理的 data 属性区分。例如:


vm.$data===mydata  //-> true

vm.$el===document.getElementById('example') //-> true



vm.$watch('a', function (newVal, oldVal) {
  // 这个回调将在 `vm.a`  改变后调用

})


例如:

<div id="example">
	<input type="text" v-model='mydata.a' />
	</div>

	var mydata= { a: 1 }
var vm = new Vue({
  el: '#example',
  data: mydata
})

vm.$watch('a', function (newVal, oldVal) {
  // 这个回调将在 `vm.a`  改变后调用
  alert('changed');
  console.log(mydata.a+'and'+vm.a);
})

结果将弹出alert窗口并在控制台输出修改后的数据且 mydata.a==vm.a


Vue实例在创建过程中包含许多可被调用的方法,比如创造后的created

例子

 
 
var vm = new Vue({
data: {
a: 1
},
created: function () {
// `this` 指向 vm 实例
console.log( 'a is: ' + this.a)
}
})
// -> "a is: 1"
也有一些其它的钩子,在实例生命周期的不同阶段调用,如  mounted 、  updated  、 destroyed  。钩子的  this  指向调用它的 Vue 实例。一些用户可能会问 Vue.js 是否有“控制器”的概念?答案是,没有。组件的自定义逻辑可以分布在这些钩子中。


下图是Vue实例的生命周期



  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值