Javascript vue观察子列表如何更改或v型

Javascript vue观察子列表如何更改或v型,javascript,vue.js,vuejs2,Javascript,Vue.js,Vuejs2,我试着观察一个有子列表的列表,一些可以很好地更改子列表 新Vue({ el:“应用程序”, 数据:{ 列表:['1','2']] }, 观察:{ 列表:funtion(){ console.log('change') } } }) 当我修改输入时,watcher不工作执行以下操作以监视嵌套更改并触发监视: 观察:{ 名单:{ handler(){ console.log('change') }, 深:是的 } } 有趣的是: 如果嵌套数据为以下任一项,则在不使用deepwatch的情况下,

我试着观察一个有子列表的列表,一些
可以很好地更改子列表


新Vue({
el:“应用程序”,
数据:{
列表:['1','2']]
},
观察:{
列表:funtion(){
console.log('change')
}
}
})
当我修改输入时,watcher不工作

执行以下操作以监视嵌套更改并触发监视:

观察:{
名单:{
handler(){
console.log('change')
},
深:是的
}
}
有趣的是: 如果嵌套数据为以下任一项,则在不使用
deep
watch的情况下,watch将not触发:

  • 对象数组(目前最常见)
  • 对象的对象
  • 数组的对象
但是,如果嵌套数据是数组的数组(如代码中所示),Vue可以检测到它。它可以在排错的情况下工作(如下面@BorisK的回答所述)

这有点出乎意料,因为我们认为Vue在没有
deep
watch的情况下无法检测到深度更改,但它可以通过数组数组而不仅仅是在模板中检测


功能替换
功能(您忘记了
c

单击下面的“运行代码片段”以查看它的运行情况

newvue({
el:“应用程序”,
数据:{
名单:[
[‘一’、‘二’]
]
},
观察:{
列表:函数(){
console.log('change');
}
}
});


修改输入是什么意思?+1从我这里可以看出,Vue可以在没有
deep
的情况下对数组进行深度监视。检查我的答案,看看有没有有趣的factoid