Is watch not listening when the input value bound to the vue array changes?

<div id="app">
  <h2>Todos:</h2>
  <ol>
    <li v-for="todo in todos">
      <label>
        <input v-model="todo" >
      </label>
    </li>
  </ol>
</div>
new Vue({
  el: "-sharpapp",
  data: {
    todos: [1,2,3]
  },
  watch:{
    todos: {
       handler(newValue, oldValue) {
for (let i = 0; i < newValue.length; iPP) {
if (oldValue[i] != newValue[i]) {
alert(newValue)
}
}
},
deep: true
    }
  },
  methods: {
      toggle: function(index,e){
        alert(e)
    }
  }
})

demo: http://jsfiddle.net/9hmndL4x/ changing the value in input does not trigger watch

May.27,2022

<li v-for="(todo, index) in todos">
  <label>
    <input v-model="todos[index]" >
  </label>
</li>

aren't you listening to todos? the todos has not changed, and the corresponding watch will not be triggered.

Menu