根据官方的API说明: watch(WatcherSource, Callback, [WatchOptions]) type WatcherSource = Ref | (() => T) interface WatchOptions extends WatchEffectOptions { deep?: boolean // 默认:false immediate?: boolean // 默认:false flush?: string // 默认:'pre' } 因此你应该: watch( tableData, (newVal) => {...}, { deep: true } ); 最后提醒一下: ### 当我们使用watch侦听引用对象时 * 若使用ref定义的引用对象: * 只要获取当前值,watch第一个参数直接写成数据源,另外需要加上deep:true选项 * 若要获取当前值和先前值,需要把数据源写成getter函数的形式,并且需对数据源进行深拷贝 * 若使用reactive定义的引用对象: * 只要获取当前值,watch第一个参数直接写成数据源,可以不加deep:true选项 * 若要获取当前值和先前值,需要把数据源写成getter函数的形式,并且需对数据源进行深拷贝