ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

vue-监听对象失效解决方法/Object.assign/深浅copy

2022-06-16 22:33:41  阅读:262  来源: 互联网

标签:vue Object value set copy assign 属性


watch中已设置了deep属性为true,监听不触发,可能原因,监听的是一个对象,受JavaScript的限制,vue不能检测到对象属性的添加或删除。

解决方法1:
Vue.set(object,key,value)
eg:
Vue.set(this.params,"year","2022");

解决方法2:
this.$set(this.object,key,value)
eg: 
this.$set(this.params,"year","2022");

解决方法3:
Object.assign({},this.obj)
eg:
let temp = {
    "year" : '2022'
};
this.params= Object.assign({}, temp);

Object.assign是什么?

1.Object.assign()是ES6提供的一个方法。用于将所有可枚举属性的值从一个或多个源对象复制到目标对象。它将返回目标对象。

2.用法: Object.assign(target, ...sources)

3.如果有同名属性的话,后面的属性值会覆盖前面的属性值。

4.Object.assign()是浅copy,因为 Object.assign()拷贝的是属性值。假如源对象的属性值是一个对象的引用,那么它也只指向那个引用。

5.需要深度copy可以使用lodash工具库:

lodash浅copy:
_.clone(value);
lodash深copy:
_.cloneDeep(value);

 

参考链接:https://blog.csdn.net/guxin_duyin/article/details/88916106

参考链接:https://segmentfault.com/a/1190000014826146

 

标签:vue,Object,value,set,copy,assign,属性
来源: https://www.cnblogs.com/duiyuedangge/p/16383841.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有