【vue面试题——vue的响应式】

Vue2的响应式原理基于数据劫持和发布者-订阅者模式,使用Object.defineProperty()设置setter和getter。Vue3则采用Proxy改进了这一机制,能更好地处理属性的添加和删除。文章还介绍了几种常见的设计模式,如发布订阅、装饰器、代理和单例模式,并用生活中的例子加以解释。
摘要由CSDN通过智能技术生成

面试中经常会被问到vue的响应式原理。你心里先想好答案再往下看,看看你是否真正理解了。

一、响应式原理

  • vue2的响应式原理和双向绑定的原理其实大致相近,就是通过数据劫持结合发布者-订阅者模式的方式来实现的。怎么做到数据劫持?通过**Object.defineProperty()**方法设置set和get函数。你向面试官说完这个面试官可能会让你解释一下发布者-订阅者模式以及知不知道其它设计模式。我会在文章末尾给出常用前端设计模式~~

  • vue3的响应式原理是通过 Proxy 实现的。在vue2的基础上,Proxy 还完善了 definePropery 的缺陷,如监听属性的删除。Proxy 是针对对象来监听,而不是针对某个具体属性,所以不仅可以代理定义时不存在的属性,还可以代理更丰富的数据结构,比如 Map、Set …,还能通过 deleteProperty 实现对删除操作的代理。

二、拓展

常见设计模式

设计模式分为三类:

  • 行为型
  • 结构型
  • 创建型
    行为型常见的有发布订阅模式,也就是上文提到的;结构型主要有装饰器模式、代理模式;创建型主要有简单工厂模式,单例模式。

设计模式看着不好理解,但是我们只要带入生活例子就很好记忆啦。这些模式一搜就有,我大概给大家举例子解释一下:
发布订阅模式也叫观察者模式,类似于我和同学们都去买手办,但是老板说现在没货了,让我们都留下联系方式,等到货了通知我们所有人。在这里老板是发布者,我和其它人都是订阅者。
装饰器模式,就是在原本的东西上套上装饰器,在保留原理功能的情况下新增功能。比如我有一个扫地机器人只能扫地,我在外面套上一个音乐播放器。这样它就有扫地和放音乐两个功能了。
代理模式就是相当于我们想联系明星只能先联系明星的经纪人。
单例模式大家应该比较熟悉,就是只有一个实例,不能让用户一直new实例,而是要把我们这个实例return出去使用。
下篇文章继续更新面试题~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值