【发布时间】:2018-12-05 20:26:02
【问题描述】:
大家好, 我有些困惑。我有两个组件(子组件和父组件),我将对象的属性作为道具传递
<child :child-data="abc" ></child>
Vue.component('childComponent', {
props: ['childData'],
data: function(){
return {
count:this.childData,// recommend use Vue.util.extend
}
},
});
Vue 会递归地将 childComponent 的“数据”属性转换为 getter/setter 以使其“反应”。 那么为什么它不自动将数据绑定到模板呢?我阅读了一些推荐使用 Vue.util.extend。为什么选择 Vue.util.extend?
更新
我的例子: https://jsfiddle.net/hoanghung1995/xncs5qpd/56/
当我设置 parentData 的默认值时,childDataA 将显示它。但是当我使用 v-model 覆盖 parentData 时 childDataA 不是“反应性的”。我必须使用“watch”来覆盖“data”,类似于 childDataB
Vue.util.extend 示例:https://jsfiddle.net/sm4kx7p9/3/
为什么 Vue.util.extend 可以正常工作,但不能使用“watch”?,
【问题讨论】:
-
你为什么不直接使用
childPropsA?。childPropsA是反应性权利。如果需要进行一些修改,则可以使用计算属性。
标签: javascript vue.js vuejs2