【发布时间】:2017-09-12 14:12:59
【问题描述】:
鉴于冒号表示 VueJS2 中的单向数据绑定,我想了解为什么在此示例中,子级能够更新在父级中声明并通过 prop 传递给子级的数组(单向)。
https://jsfiddle.net/ecgxykrt/
<script src="https://unpkg.com/vue"></script>
<div id="app">
<span>Parent value: {{ dataTest }}</span>
<test :datatest="dataTest" />
</div>
var test = {
props: ['datatest'],
mounted: function() {
this.datatest.push(10)
},
render: function() {}
}
new Vue({
el: '#app',
components: {
'test': test
},
data: function() {
return {
dataTest: []
}
}
})
提前致谢!
【问题讨论】:
-
我对答案很感兴趣,因为如此公平的答案无法解释这一点。并且 vue 明确声明这是一种单向绑定,您甚至应该在直接改变 prop 时收到警告。
-
@Stephan-v 对象和数组通过引用传递。您可以像修改
const值一样修改它们。你不能做的就是将 prop 更改为一个全新的对象或数组。
标签: javascript vue.js vuejs2