1. 啥是响应式?
(1).所谓的数据响应式就是能够使数据变化可以被检测到并且对这种变化做出响应式的机制
2. 为什么vue需要响应式?
(1).MVVM框架中要解决的核心问题数据驱动视图,数据的改变引起视图的更新,那么要实现这一点那么就是需要对数据做响应式的处理,这样才能实现数据改变立即做出更新处理。
3. 它能给我们带来什么好处?
以Vue为例通过数据响应加上虚拟DOM和patch算法(将虚拟DOM转化为DOM),开发人员只需要关心数据,关心页面。完全不需要去接触繁琐的DOM操作,从而大大提升开发效率
4.vue的响应式是怎么实现的?有哪些优缺点?
Vue2中的是采用了Object.defineProperty()的方式定义数据拦截,当数据被访问或者修改时,作出响应;但是如果是数组则通过覆盖数组对象的原型的7个方法才能实现这个目的。虽然说Vue2实现了响应式的功能,但是在实际使用中也存在一些问题,比如初始化时的递归遍历造成的性能损失,在或者有些场景需要使用$set和$delete这样特殊api才能实现的;对于ES6的Map和Set这种数据结构也不支持
5.vue3中的响应式的新变化?
为了解决Vue2中Object.defineProperty带能的性能问题,已经实现的复杂性问题,所以Vue3重新编写了这一部分的实现,利用的是Es6的新语法Proxy代理来实现的,在Vue3中就不在需要特殊api了,初始化的性能和内存消耗也得到提升
6.vue3中ref和reactive的区别
(1).ref主要是针对基本类型的数据:比如number、string,而reactive主要是针对对象和数组
(2).ref初始化的值在使用时需要.value去取值
(3).ref也可以定义对象或者数组,这是因为ref源码底层会去判断数据类型如果是对象或者数组等还是会去调reactive
以上就是我对Vue响应式的理解,如果文章由于我学识浅薄,导致您发现有严重谬误的地方,请一定在评论中指出,我会在第一时间修正我的文章,以避免误人子弟。