请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

如果数组监听的话,是不是应该return

if(Array.isArray(target)) {
     target.__proto__ = arrProto ;
     return ;//是不是应该return
 }

//如果是数组 不应该执行下面的操作了吧
for(let key in target) {
    defineReactive(data,key,target[key])
}

正在回答

1回答

双越 2020-12-27 18:37:34

如果数组的元素,是对象呢?

1 回复 有任何疑惑可以回复我~
  • 提问者 fashionLee #1
    非常感谢!
    回复 有任何疑惑可以回复我~ 2020-12-27 18:53:19
  • 提问者 fashionLee #2
    看错了
    回复 有任何疑惑可以回复我~ 2020-12-27 20:50:11
  • 提问者 fashionLee #3
    确实老师视频中的例子数组这里不太妥当,因为这样普通数据类型的数组每一个值都成了响应数据了。 this.arr[0] = 2;就应该更新视图才对。但是实际vue使用中这种赋值是无法触发更新的。看了vue这块源码,数组和对象应该走的是两条路,老师视频中的例子 改成下面这样
    if(Array.isArray(data)) {
            data.__proto__ = arrProto ;
            for(let key in data) {
                observer(data[key])
            }
            return ;
        }
    
        for(let key in data) {
            defineReactive(data,key,data[key])
        }
    回复 有任何疑惑可以回复我~ 2020-12-27 21:02:53
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信