我已经创建了一个手表,当<Input v-model="computedData" />
更改数据时,我可以获得旧的和新的值。数据也可以通过XMLHttpRequest
进行更改。我要知道是谁篡改了数据。当数据发生变化时,我无法通过watcher
获取event
作为参数。因为在任何情况下,都无法到达event
。我知道,我可以使用event
直接访问事件。但我也知道是deprecated
。所以我正在研究如何将事件类型访问为InputEvent
或XMLHttpRequest
。
@Options({
name: 'dx-table',
watch: {
computedData: {
handler(newData: any, oldData: any) {
console.log(event); // is there any way to access `event` without using `event` directly
},
deep: true,
immediate: true,
},
},
})
export default class DxTable extends Vue.with(Props) {}
无法在监视程序中获取数据更改的事件或原因。观察者只是一个函数,当一些响应性属性发生变化时,它就会执行,而你得到的只是旧值和新值。
根据给出的信息,有两种方法可以更改数据:
输入- event:为组件上的输入事件注册一个侦听器,如
@input="handleInput"
。事件对象被传递给函数。 - XMLHttpRequest:当你在代码中改变属性时,只需调用一个方法来处理特定的突变。
我不知道你的代码的具体情况,但这可能是一种情况,而不是在你的代码中自由地改变数据,使用一个或多个&;setter&;方法来执行此操作,以便您确切地知道数据在何处以及如何发生了变化。使用监视器无法提供关于数据在何处或如何更改的信息,并且如果您在代码库中的许多随机位置更改数据,那么您将很难尝试跟踪代码以找到突变的原因。