1.计算属性 computed
当依赖的数据发生变化时,计算属性会被重新计算。
有且只有在依赖的数据发生改变时它才会重新求值。(别的数据改变对计算属性没有影响)
```html
<div id="example">
<div id="demo">{{ fullName }}</div>
</div>
<script>
var vm = new Vue({
el: '#example',
data: {
firstName: 'Foo',
lastName: 'Bar'
},
computed: {
// this 指向 vm 实例
fullName: function () {
// 当this.firstName 或 this.lastName 有变化时这个函数会重新执行
return this.firstName + ' ' + this.lastName
}
}
})
</script>
```
2.侦听器 watch
当监听的数据变化时监听函数被执行
```html
<div id="example">
<div id="demo">{{ fullName }}</div>
</div>
<script>
var vm = new Vue({
el: '#demo',
data: {
firstName: 'Foo',
lastName: 'Bar',
fullName: 'Foo Bar'
},
watch: {
// this 指向 vm 实例
firstName: function (newVal, oldVal) {
// 当this.firstName 有变化时这个函数会重新执行
this.fullName = newVal + ' ' + this.lastName
},
lastName: function (newVal, oldVal) {
// this.lastName 有变化时这个函数会重新执行
this.fullName = this.firstName + ' ' + newVal
}
}
})
</script>
```