vue js prop 等于 v-model
vue js prop equal to v-model
当我在挂载钩子中将 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。
我想在这里写下我的全部代码,但只是尽量缩短。
export default{
props: ['initial_value'],
data(){
return { component_value: this.initial_value }
}
}
这应该有效。
编辑:
如果你要连续改变道具(反应性),你必须使用计算属性,像这样
computed: {
component_value(){
return JSON.parse(JSON.stringify(this.initial_value)
}
}
此致
最简单的方法是克隆您的 initial_value
。
你可以这样做:
mounted() {
this.component_value = JSON.parse(JSON.stringify(this.initial_value));
}
这应该有效。
您可以查看更多答案here。
更改挂载钩子中的代码,如下所示
mounted() {
this.component_value = JSON.parse(JSON.stringify(this.initial_value));
}
它将this.initial_value变量的值不只是通过引用而是通过它的数据。
在JavaScript中,一个变量可以存储两种类型的数据:原始数据和引用数据。 this.initial_value 有参考数据,因为它的类型是一个数组。更多解释请阅读这篇文章source
当我在挂载钩子中将 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。
我想在这里写下我的全部代码,但只是尽量缩短。
export default{
props: ['initial_value'],
data(){
return { component_value: this.initial_value }
}
}
这应该有效。
编辑:
如果你要连续改变道具(反应性),你必须使用计算属性,像这样
computed: {
component_value(){
return JSON.parse(JSON.stringify(this.initial_value)
}
}
此致
最简单的方法是克隆您的 initial_value
。
你可以这样做:
mounted() {
this.component_value = JSON.parse(JSON.stringify(this.initial_value));
}
这应该有效。
您可以查看更多答案here。
更改挂载钩子中的代码,如下所示
mounted() {
this.component_value = JSON.parse(JSON.stringify(this.initial_value));
}
它将this.initial_value变量的值不只是通过引用而是通过它的数据。 在JavaScript中,一个变量可以存储两种类型的数据:原始数据和引用数据。 this.initial_value 有参考数据,因为它的类型是一个数组。更多解释请阅读这篇文章source