请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

Props不是单向数据流吗?为何cartcontrol组件中,可以给this.food增加count属性

Vue官方指南 2.0

#单向数据流

prop 是单向绑定的:当父组件的属性变化时,将传导给子组件,但是不会反过来。这是为了防止子组件无意修改了父组件的状态——这会让应用的数据流难以理解。

另外,每次父组件更新时,子组件的所有 prop 都会更新为最新值。这意味着你不应该在子组件内部改变 prop 。如果你这么做了,Vue 会在控制台给出警告。

注意在 JavaScript 中对象和数组是引用类型,指向同一个内存空间,如果 prop 是一个对象或数组,在子组件内部改变它会影响父组件的状态。

以上是vue2.0官方文档中的描述,那么在子组件中修改props的属性,是否是官方推荐的方法呢?

正在回答

3回答

ustbhuangyi 2016-12-10 13:10:13

2.0确实不推荐这么做了,1.0版本是可以的~

0 回复 有任何疑惑可以回复我~
  • 提问者 RossRoma #1
    非常感谢!
    回复 有任何疑惑可以回复我~ 2016-12-10 14:47:14
ATWJSW 2017-02-01 15:02:53

上周看到这里,我也有同样的疑问。当时我的理解也是“在 JavaScript 中对象和数组是引用类型,指向同一个内存空间,如果 prop 是一个对象或数组,在子组件内部改变它会影响父组件的状态。”。

但Vue2.0中如果不推荐这样实现,那么cartcontrol中对food.count的改变如何回传给父组件呢?

1 回复 有任何疑惑可以回复我~
  • 我也想知道,为什么还是可以传给父组件
    回复 有任何疑惑可以回复我~ 2017-02-11 14:47:40
NeurotoxinVX 2016-12-10 12:48:18

Vue 2.0 中 props 改为了单向数据流,本课程是基于 Vue 1.0 的 ~所以 props 还可以使用双向绑定哦 ~ 

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信