欢迎光临散文网 会员登陆 & 注册

千锋教育web前端高频面试题视频教程,kerwin大话前端面试秘籍(附答案)

2023-07-20 22:56 作者:散尽雾里  | 我要投稿

Vue和React的响应式原理是什么?

vue会遍历data数据对象,使用Object.definedProperty()的方法getter和setter拦截 ,当数据发生改变的时候,会触发setter方法,通知调用watcher,watcher调用reader函数,进而生成虚拟DOM,新的虚拟DOM对比旧的虚拟DOM,通过diff算法查找他们之间的区别,以最小的代价进行DOM节点的渲染,实现页面的更新操作。

React主要是通过setState方法来更新状态,状态更新之后,组件也会重新渲染。

Proxy与Object.defineProperty的区别?

Object.defineProperty

  • 只能监听对象(Object),不能监听数组的变化,无法触发push, pop, shift, unshift,splice, sort, reverse,必须重写数组方法。
  • 必须遍历对象的每个属性
  • 只能劫持当前对象属性,如果想深度劫持,必须深层遍历嵌套的对象

Proxy

  • Proxy可以直接监听对象而非属性
  • Proxy直接可以劫持整个对象,并返回一个新对象。
  • Proxy可以直接监听数组的变化
  • Proxy有多达13种拦截方法,不限于apply、ownKeys、deleteProperty、has等等是Object.defineProperty不具备的。

千锋教育web前端高频面试题视频教程,kerwin大话前端面试秘籍(附答案)的评论 (共 条)

分享到微博请遵守国家法律