是否可以在Vue
中将整个data
对象作为道具传递?
例如
Vue.component('comp', {
props: ['allData'],
template: '<div>{{allData.msg}}</div>'
})
new Vue({
el: "#test",
data: {
msg: "Hello"
}
})
在我的视图:
中<div id="test">
<comp :allData="data"></comp>
</div>
答案 0 :(得分:4)
这可能是这样的:
<div id="test">
<comp :allData="$data"></comp>
</div>
但是,变异组件中的allData
会影响父级的状态,因为它是一个对象。请参阅以下Vue 1.0 docs的警告:
请注意,如果传递的prop是Object或Array,则通过引用传递它。无论您使用何种绑定类型,在子项内部对象或数组本身的变换都会影响父状态。
请注意,JavaScript中的对象和数组是通过引用传递的,因此如果prop是数组或对象,则在子项内部变换对象或数组本身会影响父状态。
答案 1 :(得分:2)
您可以通过$data
访问整个对象,然后传递它。
但它通常不是最好的想法。