在Vue.js中,如何编辑prop而不更改父级数据?这是什么意思呢?就是说,当我们在Vue.js中从父组件传递任何属性到子组件时,如果我们在子组件中对该属性进行任何更改,则该更改也会反映在父组件中。
在Vue.js中是否有一种方法可以在子组件中制作传递属性的本地副本?
我搜索了一下,但无论在哪里都写着我们可以通过以下方式来实现这一点。
props:["user"],
data(){
return {
localUser: Object.assign({}, this.user)
}
}
这里将对象传递给用户,并在本地创建其副本,但根本不起作用,本地用户未定义。
您是否遇到过这样的情况:需要更改子组件中父级属性而不影响父组件状态,即在子组件中制作自己的副本并进行编辑?
对此有任何见解都将很有帮助。
我还在某个地方读到,在vue@2.3.3中,当我们想从父组件传递prop到子组件时,需要手动创建本地数据以保存prop,这会产生大量无用的工作。
我们可以像这样手动创建本地数据:
props: ['initialCounter'],
data: function () {
return { counter: this.initialCounter }
}
但是在我的情况下这并不起作用。 我正在使用vue cli 3.0.1进行开发。
这是相同代码:
在我的应用程序中,我有一个列表视图。
当用户单击 See Focused View 按钮时,用户将被重定向到下面提到的视图,即实际上是引导 - 模态视图。
在这里,用户可以编辑名称的值,但是因为我从父组件传递名称作为属性,所以在此处对其进行编辑会导致在父组件中也更新,即在列表视图中也更新。