Vue数据响应式

vue对data做了什么?

object,defineProperty

可以给对象添加是属性value,可以给对象添加getter/setter,getter/setter用于对属性的读写进行监控

啥事代理(设计模式)

对myDate对象的属性读写,全权由另一个对象vm负责那么vm就是myData的代理,比如data,偏要vm.n来操作myData,n

vm=new Vue({data:myData})

一,会让vm成为myData的代理(proxy)

二。会对mydata的所有属性进行监控,为什么监控,为了防止mydata的属性变了vm不知道,vm知道了又怎样?,知道属性变了就可以调用render(data) UI=render(data)

数据响应式

什么是响应式,一个物体对外界的刺激做出反应就是响应式

vue的data是响应式:const vm=new vue({data{n:0}})

我如果修改vm.n那么ul中的n就会响应我,vue2通过objec,defineprqerty来实现数据响应式

响应式网页

改变窗口大小,网页就会做出响应,

对象中新增的key

vue没有办法先监听和代理,要使用set来新增key,创建监听和代理,更新ul,最好提前把属性都写出来,不要新增key,但数组做不到【不新增key】

数组中新增的key

也可以用set来新增key,更新ul

不过由于系篡改了7个api方便你对数组进行增删

这7个api会处理监听和代理,并更新ul

结论:数组新增key最好通过7个api

响应式原理

会被vue监听,会被vue实列代理,每次对data的读写都会被vue监控,vue会在data变化时更新ui

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容