主要是输入框,
这时候我们需要创建于给setVal方法实时修改数据。
这里如果我们绑定的是一个对象,
那我们需要遍历到最底层去修改这个数据,所以取数组长度并且做一个判断,就是遍历到底的时候我给他赋值。
这样就实现数据双向绑定了,
数据双向绑定总结 主要是v-model,当数据影响视图可以直接利用watcher的回调函数来更新视图,当视图影响数据时,定义一个setVal方法,将最新的值与keys传进去,在里面通过修改vm.$data来修改数据,从而达到视图影响数据效果。
实现代理,就是每次不用写this.$data.name而是直接写this.name
一开始
这里的data指的是this.$data,故我们修改数据都要通过this. $data去获取修改
这时,在外部可以实现一个代理,通过this指向,获取修改数据,如图
此时我们修改数据有两种方式,一种是this.$ data.name去走里面那层,一种是this.name直接走代理。相当于给this对象,也就是Vue对象添加上所有的属性方法并且进行一个监听。
没有代理前
this上是没有这些属性的。
代理后,
而且我们的data里也有,所以才能两个都用。