Я сейчас работаю над компонентом, у которого есть свойство item, за изменениями которого мне нужно следить. У меня пока такие часы:
watch:{
item(newVal, oldVal) { // watch it
console.info('Prop changed: ', newVal, ' | was: ', oldVal)
}
}
Элемент получает обновление при нажатии кнопки с новой меткой времени. В инструментах Vue dev я вижу, что свойство обновляется со значением, но наблюдатель не работает, и я даже не получаю сообщение журнала.





Как говорит @Bert, если item является объектом, а какие изменения являются одним из его свойств, ваш наблюдатель не будет запускаться.
Не могли бы вы попробовать это:
watch:{
item:{
handler: function(newVal, oldVal) { // watch it
console.info('Prop changed: ', newVal, ' | was: ', oldVal)
},
deep: true
}
}
Это немного не по теме, потому что это связано с моей структурой данных, но все же представляло мне проблему с тем, что данные не отслеживались. Я использую .Net со ссылкой vuejs CDN и сложной структурой данных. VueJs не любит такую структуру для часов. Таким образом, для элемента данных "watchme" часы не работают ни с использованием this -> object.item.watchme, ни с использованием watchme. Поэтому мне пришлось сделать следующее:
Сначала мне нужно настроить суррогат под вычисленным
computed:
watchme: function () {
return object.item.watchme;
},
тогда посмотрите суррогатную мать
watch:
watchme: {
handler: function (newVal, oldVal) { // watch it
console.info('prop changed: ', newVal, ' | was: ', oldVal)
},
deep: true
}
Для меня это сработало:
Похоже, вам нужны более глубокие часы. vuejs.org/v2/api/#watch