小编Fra*_*ois的帖子

维埃斯。改变子组件中的 prop 不会触发警告。想知道为什么

我注意到 prop 突变(Vue 2.6)有一些奇怪的地方。

应避免直接在子组件中改变 props,否则会触发以下著名的警告

“避免直接改变道具,因为该值将被覆盖......”

因此,如果在我的父组件中我有一个类似的数据

exemple: "Hello World"
Run Code Online (Sandbox Code Playgroud)

我将其作为道具传递给子组件。如果在那个子组件中我做了类似的事情

this.exemple = "Hello World!"
Run Code Online (Sandbox Code Playgroud)

我收到警告。很公平。现在我注意到,如果父级中的数据是像这样的对象

exemple : {message : "Hello World"}
Run Code Online (Sandbox Code Playgroud)

我在孩子身上做了类似的事情

this.exemple.message = "Hello World!"
Run Code Online (Sandbox Code Playgroud)

这不会触发任何警告,而且父组件中的数据会更新

我想知道为什么。为什么在一种情况下 prop 突变会传播到亲本,而在另一种情况下则不会?它可能与 javascript 如何存储这些变量有关吗?使用这个技巧是个好习惯吗?

javascript vue.js vuejs2 vue-props

5
推荐指数
1
解决办法
1822
查看次数

标签 统计

javascript ×1

vue-props ×1

vue.js ×1

vuejs2 ×1