为什么循环赋值,watch监听只能监听到最后一次的值变化

为什么循环赋值,watch监听只能监听到最后一次的值变化

问题描述:

在for循环中给某个变量赋值,为什么不能实时watch监听该值的变化?

例如已在data中定义了test="";

方法赋值:

for(let i=0;i<6;i++){
            this.test=i;
}

watch监听:

 watch:{
        test:{
          handler(newVal,oldVal){
             console.log(newVal);
          }
        }
      },

这样打印的只是5,而不是我想要的1,2,3,4,5,忘大佬解答.

可以用setimeout实现,例如

for (let i = 0; i < 6; i++) {
      setTimeout(timer=>{
        this.test = i;
      },i*1000)

    }

可能是同步方法执行完成后才会监听到数值变化
你在循环内加个强制渲染试试

this.$forceUpdate()

还有真不懂那个穷在人世官方为什么不封他,回答都是关键字搜索随便丢个链接,问题都是些面试题从不采纳