首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
Vue3 为什么改用 Proxy 实现响应式?Vue2 的
[问答题]
Vue3 为什么改用 Proxy 实现响应式?Vue2 的 defineProperty 有哪些局限?
查看答案及解析
添加笔记
求解答(0)
邀请回答
收藏(6)
分享
纠错
5个回答
添加回答
1
什么都不怕g
vue2的defineProperty只针对已知属性的操作,不能对数组下标进行操作,不能对数组进行增删 而vue3改用了Proxy实现响应式,没有上述的限制
发表于 2025-10-20 19:16:06
回复(0)
0
牛客603066414号
Vue中的元素Proxy可以对对象/数组的增加删除修改操作做出拦截,然后对些操作做处理,对数据进行更新,重新渲染dom元素做到响应式, Vue2中的Object.defineProperty 只能对初始化的数据属性,元素做出监听,一旦对对象/数组等进行操作,不会重新加载Dom , 无法做到响应式,想要使得数据响应式,得做特殊处理,更为麻烦
发表于 2025-11-24 15:55:09
回复(0)
0
卷柏1
Vue2 的 defineProperty(旧方法):麻烦多、能力弱,Vue3 的 Proxy(新方法):省心、全能
发表于 2025-11-06 08:50:02
回复(0)
0
秋水夏树
Object.defineProperty:无法监听对象增删;改写数组原型方法手动触发依赖通知;深层递归遍历耗时。 Proxy:支持对象所有基本操作拦截改写;访问到时才深度遍历;不需要 vue.set/vue.delete 增加心智负担。
发表于 2025-09-17 18:42:21
回复(0)
0
温千蕴
vue2只能拦截已存在的属性,如果要进行新增啊,删除这些操作就需要用$set和$delete进行手动添加。而且他是无法经监听数组下标对这个对象进行赋值以及改变,通常会造成一个视图不更新的现象,而且他是需要深度遍历对象的每一次都要重新写那七个函数,性能会变,慢速度也会变慢。 vue3是一个对象级的响应是。对于增删这些操作进行自动捕获的,不需要我们用$set进行手动添加。而且它使用的是一种懒加载的方式就是你用到哪一层才会进行哪一层的使用,这个时候页面初始化会非常快性能也很好。
发表于 2025-09-17 16:45:00
回复(0)
这道题你会答吗?花几分钟告诉大家答案吧!
提交观点
问题信息
来自:
Vue-牛客面经八股
难度:
5条回答
6收藏
146浏览
热门推荐
相关试题
如何排查“白屏”:异步错误、资源加...
评论
(2)
来自
Vue-牛客面经八股
介绍下大型表单的校验、联动与性能优...
评论
(0)
来自
Vue-牛客面经八股
ECharts/地图等重型图表在 ...
评论
(0)
来自
Vue-牛客面经八股
axios 二次封装:拦截器、取消...
评论
(1)
来自
Vue-牛客面经八股
Vue3 中多级通信与解耦:Com...
评论
(1)
来自
Vue-牛客面经八股
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题