当我在挂接钩中将v-model设置为props时,为什么更改也会对props产生影响。
export default{
props: {
initial_value: Array,
},
data(){
return { component_value: [] }
},
mounted(){
this.component_value = this.initial_value;
}
}
因此,当我对component_value进行一些更改时,也会影响initial_value。
我想在这里写完整的代码,但只是尝试使其简短。
答案 0 :(得分:1)
最简单的方法是克隆您的public function getNestedObject(): NestedObject
{
$json = $this->nestedObject;
$nestedObject = new NestedObject();
$nestedObject->setX($json['x']);
... // rest of setters
return $nestedObject;
}
。
您可以这样做:
initial_value
这应该有效。
您可以查看更多答案here。
答案 1 :(得分:1)
在安装挂钩中更改您的代码,如下所示
mounted() {
this.component_value = JSON.parse(JSON.stringify(this.initial_value));
}
它将this.initial_value变量的值不仅仅通过引用而是通过其数据。 在JavaScript中,变量可以存储两种类型的数据:原始数据和引用。并且this.initial_value具有参考数据,因为它的类型是数组。有关更多说明,请阅读本文source
答案 2 :(得分:0)
export default{
props: ['initial_value'],
data(){
return { component_value: this.initial_value }
}
}
这应该有效。
编辑:
如果您要连续更改道具(反应性),则必须使用这样的计算属性
computed: {
component_value(){
return JSON.parse(JSON.stringify(this.initial_value)
}
}
致谢