响应式原理是vue的核心特性之一,数据驱动视图,是修改数据视图随之响应更新,Vue2.x是借助Object.defineProperty()实现的,而Vue3.x是借助Proxy实现的。
我们通过Object.defineProperty为对象obj添加属性,可以设置对象属性的getter和setter函数。之后我们每次通过点语法获取属性都会执行这里的getter函数,在这个函数中我们会把调用此属性的依赖收集到一个集合中 ;而在我们给属性赋值(修改属性)时,会触发这里定义的setter函数,在次函数中会去通知集合中的依赖更新,做到数据变更驱动视图变更。
3.x的与2.x的核心思想一致,只不过数据的劫持使用Proxy而不是Object.defineProperty,只不过Proxy相比Object.defineProperty在处理数组和新增属性的响应式处理上更加方便。
双向数据绑定通常是指我们使用的v-model指令的实现,是Vue的一个特性,也可以说是一个input事件和value的语法糖。 Vue通过v-model指令为组件添加上input事件处理和value属性的赋值。因此当我们修改input输入框中的值时,我们通过v-model绑定的值也会同步修改
vue的设计思想?双向绑定的原理?什么样的设计思想?
最新推荐文章于 2024-11-11 23:32:58 发布