vue2计算属性和侦听器官网介绍
1、功能不同,计算属性用于解决模板语法冗余问题;侦听器侦听data中某一个数据变化。
2、计算属性有缓存机制,侦听器没有缓存机制
3、计算属性不支持异步操作,侦听器支持异步操作
4、计算属性可以给vue新增属性,侦听器必须是data中已有属性
5、计算属性只要使用了就会立即执行一次,侦听器默认只有当数据第一次执行才会执行
6、侦听器可以通过设置immerdiate为true,也可以像计算属性一样立即执行一次
7、擅长处理的场景
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]}}
}
如果计算属性computed需要对数据进行修改,需要写get和set两个方法,当数据变化时,就调用set方法
var watchExampleVM = new Vue({el: '#watch-example',data: {question: '',},watch: {// 如果 `question` 发生改变,这个函数就会运行question: function (newQuestion, oldQuestion) {console.log(newQuestion);console.log(oldQuestion);}}
})//immediate属性======================
var watchExampleVM = new Vue({el: '#watch-example',data: {question: '',},watch: {// 如果 `question` 发生改变,这个函数就会运行question:{handler(newQuestion, oldQuestion) {console.log(newQuestion);console.log(oldQuestion);},// 代表在wacth里声明了name这个方法之后立即先去执行一次handler方法immediate: true}}
})//deep属性======================
/*
侦听器中的deep属性,deep设置为 true 的意思就是深入侦听,修改对象里面任何一个属性都会触发这个监听器里面的 handler 方法来处理响应的逻辑
*/
//不适用deep
//使用deep
上一篇:Docker与微服务实战2022
下一篇:C语言经典例题-字符数组