vue -- computed & watch

computed

计算属性:computed属性个人理解为是用来计算重新赋值data里面指定数据的值,也可以重新用来返回一个新的数据,但是这个数据无法动态更新,但是一般建议是用来赋值data里面的属性值

data: {num: 1}

// 计算
computed: {
    changeNum: function () {
        return this.num++
    } 
}

// HTML
<div>{{changeNum}}</div> => // 2

computed 属性会基于data所依赖的数据进行缓存,如果不希望有缓存,请使用 method 方法替代
computed 属性默认只设置 getter 函数,不过在需要时,还可以提供 setter 函数:
computed: {
fullName: {
// getter 函数
get: function () {
return this.firstName + ' ' + this.lastName
},
// setter 函数
set: function (newValue) {
var names = newValue.split(' ')
this.firstName = names[0]
this.lastName = names[names.length - 1]
}
}
}
通过改变fullName的值,同时也会改变firstName和lastName的值

watch

监听器:watch属性个人理解就是用来监听data里面数据变化并进行相关操作的一种工具
watch对象以data中的属性为key,vlaue是一个函数方法,这个函数方法里面有两个参数,一个是改变前的值,一个是改变后的值

data: {name: '李狗蛋'}
watch: {
    name: function (newVal, oldVal) {
        console.log('名字改变了')
    }
}

深度监听

posted @ 2019-04-04 14:31  不会代码的前端  阅读(226)  评论(0编辑  收藏  举报