解决使用$set,视图还是不能更新的问题
Object.assign
Object.assign可以用于js对象浅复制。语法:Object.assign(target, source1, source2);
第一个参数为目标对象,后面的为要合并的对象(源对象)。
let obj={
a:2,
b:4
}
Object.assign({}, obj, {c:6}); // 将{c:6}与obj合并 返回{a:2,b:4,c:6}
当属性名相同时,新增的会覆盖原来的属性
Object.assign只会拷贝对象本身的属性,不拷贝继承属性,不拷贝不可枚举对象。
当项目中遇到vue视图不及时刷新的问题,使用Object.assign重新创建一个对象,给视图对象重新赋值,可以解决vue中视图不及时刷新的问题。
本人项目案例:
skuConfirm(sku) {
this.changeSku = sku;
this.list.forEach(x => {
if (x.salesOrderDetailId == this.cursor) {
x.outProductId = sku.productId;
x.outProductName = sku.productName;
x.outProductCode = sku.productCode;
x.outSkuId = sku.skuId;
x.outSkuCode = sku.skuCode;
x.outSkuName = sku.skuName;
this.$forceUpdate();
}
});
this.list = Object.assign([], this.list, this.list);
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 一文读懂知识蒸馏
· 终于写完轮子一部分:tcp代理 了,记录一下