Vue watch监测不到数据变化与新老值一样
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Vue watch监测不到数据变化与新老值一样相关的知识,希望对你有一定的参考价值。
参考技术A当watch的值是一个 引用类型 的,如 Array Object 这种,是监测不到变化的。
方法:
vue中的watch方法
vue中的监听方法
watch
注意
名字 你想监听哪个属性,就要和他起一样的名字
1.作用
用来监听vue实例中的数据变化
可以随时修改状态的变化
2.触发条件
当你监听的属性发生变化时,会自动调用对应的监听方法
3.使用场景
用于异步处理,开销比较大的运算
4.示例
watch:{
name(newvalue,oldvalue){
//计算属性可以接受两个参数,第一个参数是新的属性值,第二参数是老的属性值
// this.age
// console.log('name属性发生变化了')
console.log(newvalue,oldvalue)
}
5.监听对象时
<script>
export default {
data() {
return {
obj: {
name: "张三",
age: 20,
children: [
{
name: "李四",
age: 27
},
{
name: "王五",
age: 23
}
]
}
};
},
watch: {
obj: {
handler: function(newVal, oldVal) {
console.log("newVal:", newVal);
console.log("oldVal:", oldVal);
},
deep: true,
immediate: true
},
"obj.name": function(newVal, oldVal) {
console.log("newVal obj.name:", newVal);
console.log("oldVal obj.name:", oldVal);
}
},
};
</script>
监听对象的时候,需要加deep:true,这样才能深入底层去实时监听,如果没有加的话,对象是监听不到变化的。
immediate属性:布尔值
immediate:true:首次加载就监听数据变化
immediate:false:只有发生改变才监听
deep:true;
是开启深层次的监听,即所有属性都加上监听器,如果其中一个发生改变了就执行handler函数。
以上是关于Vue watch监测不到数据变化与新老值一样的主要内容,如果未能解决你的问题,请参考以下文章