Escuche cambios en valores o forme objetos y rutas en vue
datos: {
a: 1,
b: {
c: 1 }
},
reloj: {
a(val, oldVal){//plain reloj escuchando console.log( "a: " val, oldVal);
},
b: {/ Oyente profundo, escucha cambios en objetos y matrices handler(val, oldVal){
console.log("b.c : " val.c, oldVal.c); //Pero los dos valores impresos son iguales },
deep: true }
}
}
vm.a=2
vm.b.c=2
a es un valor normal y será monitoreado cuando el valor de a cambios, y b es un objeto que no se puede escribir directamente como a. Debe ser monitoreado profundamente para ser capturado. Sin embargo, cuando quiero capturar el cambio de un determinado valor en el objeto b, encuentro que los dos valores impresos. no son iguales.
De esta manera, solo puede saber que el objeto ha cambiado, pero no sabe qué valor ha cambiado si desea monitorear los cambios de valor. el objeto, puede utilizar el atributo calculado calculado
var vm=new Vue({
datos: {
b: {
c: 1 }
},
ver: {
newValue(val, oldVal){
console.log(" b.c: " val, oldVal);
}
},
calculado: {
newValue() {
devolver this.b.c
}
}
}
})
vm.b.c =2
Usar watch para monitorear el valor calculado Es una buena manera de comprender el valor calculado. Puede saber directamente qué valor correspondiente ha cambiado
watch: { // Escuche los cambios. en el valor pasado por la ruta cuando la página no se recarga y necesita cargarse usando un modelo diferente
$route () {
? .query.sceneName
? window.TTS.addObjectToScene(this.sceneName)
}
?}