props:{
variants:{
type: Array,
default: []
}
options:{
type: Array,
default: []
},
},
data(){
return{
item:{
quantity: 1,
options: this.options,
},
}
},
我有一个问题与此代码:当我改变item.options
的值时,options
也会改变,因为据我所知,我只是给options
分配了一个引用。
如何为item.options
创建新对象,而不是为Vue3 Option Api
中的现有对象分配引用。
我试过{...this.options}
,但是没有用。
3条答案
按热度按时间ovfsdjhp1#
如果是一个基元数组,浅层克隆就足以达到预期的结果:
否则,您将需要执行深度克隆,有多种方法可以实现它,您可以搜索它,但不建议使用
JSON.parse(JSON.stringify({}))
。yebdmbv42#
应使用数组
[]
括号,而不是对象括号{}
x一个一个一个一个x一个一个二个一个x一个一个三个一个
c2e8gylq3#
您可以使用Object.assign():
为了更好的可读性,我会将 prop 的名称改为
optionsProp
!