对象原地修改后,watch 回调中的 newValue 与 oldValue 通常指向同一个代理对象。watch 只负责通知响应式变化,不会自动保存历史快照。要获得完整的新旧状态,首先要区分“整体替换