Vue的坑——关于Watch

2019-04-26  本文已影响0人  念念碎平安夜

在对数据进行监听的时候,当数据data进行变换,watch将进行一系列的操作,如果这些操作可能会对监听的数据data进行修改的时候,数据data将会改变,那么又将会被watch所监听到,一直重复,陷入一个死循环。

说的简单明了一些,如何对数据进行操作,但又不会对原来的数值进行改变。。。

直接将数据复制一份,即克隆值,watch对数据进行的操作只会针对克隆值,而数据值本身不会变动,那么就不会再次触发watch的监听

msg(val, oldVal) {
    var newArr = [];//定义一个数组存放克隆值
    this.$data.msg.forEach(function(e, i) {
        newArr.push(e);//循环遍历将数值复制给克隆值,注意不能采用"="的赋值操作,否则还是会改变数据值本身
    })
    this.$data.data = newArr
}
上一篇 下一篇

猜你喜欢

热点阅读