I have an array called people that contains objects as follows:
Before
[
{id: 0, name: \'Bob\', age: 27},
{id: 1, n
It is well defined behaviour. You cannot get the old value for a mutated object. That's because both the newVal and oldVal refer to the same object. Vue will not keep an old copy of an object that you mutated.
Had you replaced the object with another one, Vue would have provided you with correct references.
Read the Note section in the docs. (vm.$watch)
More on this here and here.