vue2的响应式原理:
对象:是通过 Object.defineProperty对象的已有属性值的读取和修改进行劫持。
Object.defineProperty( 'data', 'count', {
get(){ },
set(){ }
})
//存在的问题:对象直接添加新属性或删除已有属性的时候,界面不会自动更新。
数组:是通过重写数组更新数组一系列更新元素的方法,来实现元素修改的劫持。
['push','pop','shift','unshift','splice','reverse','sort'].forEach(key=>{
arrayProto[key] = function(){
originalProto[key].apply(this.arguments)
notifyUpdate()
}
})
//存在问题:直接通过下标替换元素或更新length的时候,界面不会自动更新。
针对 vue2 对象和数组的某些更新,界面不能自动更新的问题,vue2 通过 $set 方法,实现视图的实时更新。
vue3的响应式原理:
vue3 响应式是使用 ES6 的 proxy 和 Reflect 相互配合实现数据响应式,解决了 vue2 中视图不能自动更新的问题。
proxy 是深度监听,所以可以监听对象和数组内的任意元素,从而可以实现视图实时更新。
以上是编程学习网小编为您介绍的“vue3和vue2的响应式有什么区别?”的全面内容,想了解更多关于 vuejs 内容,请继续关注编程基础学习网。
织梦狗教程
本文标题为:vue3和vue2的响应式有什么区别?


基础教程推荐
猜你喜欢
- 微信小程序实战之自定义模态弹窗(8) 2023-12-21
- 详解css中inline-block的最小宽度值 2024-02-09
- 使用分层画布来优化HTML5渲染的教程 2024-02-08
- 解决uniapp下载视频,使用uni.downloadFile下载大文件会出现下载到一半就停止问题 2023-08-29
- 利用CSS3实现平移动画效果示例代码 2023-12-29
- css textarea 高度自适应,无滚动条 2024-01-23
- 详解浏览器的缓存机制 2022-11-16
- JS实现简单打砖块弹球小游戏 2023-08-08
- vue跨域吐槽proxytable 2023-10-08
- vue如何统一样式(reset.css与border.css) 2024-02-05