当前位置:首页 » 《随便一记》 » 正文

Vue中的数据代理与数据劫持

18 人参与  2022年12月06日 16:49  分类 : 《随便一记》  评论

点击全文阅读


数据代理

数据代理字面上是通过一个对象代理对另一个对象属性的操作在vue中的数据代理,实际上是通过vm上的属性代理对_data中属性的操作
在这里插入图片描述

数据劫持

数据劫持也可称作数据代理,字面上是劫持到某个属性的变化,去做其他的操作在vue中的数据劫持,实际上是劫持到vm上属性的变化,去重新解析模板,更新页面,实现响应式效果
在这里插入图片描述

注意事项

可以理解为,属性有对应的setter、getter方法,就可以通过直接赋值的方式实现页面响应式

但是数组上没有setter、getter方法,需要通过push、pop、shift、unshift、sort、reverse、splice方法实现响应式,因为vue对这些能改变原数组的方法做了一些重新解析模板的操作
在这里插入图片描述

如果需要给vm上手动新增一个属性,需要使用Vue.set(target, key, value);vm.$set(target, key, value);,通过这样的方式添加属性,会自动生成setter、getter

// 写一个方法给person中添加age属性const vm = new Vue({el: '#root',data: function () {return {person: {name: 'wuwu'}}},methods: {addAttr() {Vue.set(this.person, 'age', 18);// or// this.$set(this.person, 'age', 18);}}});

通过Vue.set()、vm.$set()的方式不能在vm的根上添加属性,否则会报错!!!


点击全文阅读


本文链接:http://zhangshiyu.com/post/49473.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1