2016-10-11 8 views
4

Ist es in Vue möglich, das ganze Objekt data als Requisiten zu übergeben?Vollständige Datenobjekt als Requisiten übergeben

Zum Beispiel

Vue.component('comp', { 
    props: ['allData'], 
    template: '<div>{{allData.msg}}</div>' 
}) 

new Vue({ 
el: "#test", 
data: { 
    msg: "Hello" 
} 
}) 

In meiner Ansicht:

<div id="test"> 
    <comp :allData="data"></comp> 
</div> 

Antwort

2

Es ist möglich, wie folgt aus:

<div id="test"> 
    <comp :allData="$data"></comp> 
</div> 

Allerdings wird allData in der Komponente Mutieren der staatlichen Mutter beeinflussen, da es sich um ein Objekt ist. Siehe die Warnung von Vue 1.0 docs unten:

Beachten Sie, dass, wenn die Prop übergeben wird ein Objekt oder ein Array ist, wird es als Referenz übergeben. Das Mutieren des Objekts oder Arrays selbst innerhalb des untergeordneten Elements wirkt sich auf den übergeordneten Status aus, unabhängig vom verwendeten Bindungstyp.

und Vue 2.0 docs

Beachten Sie, dass in JavaScript-Objekte und Arrays werden durch Verweis übergeben, so dass, wenn die Stütze ein Array oder ein Objekt ist, mutiert das Objekt oder Array selbst im Inneren des Kindes Mutter Zustand beeinflussen.

2

Sie können über $data das ganze Objekt zuzugreifen, und es passieren.

Aber es ist normalerweise nicht die beste Idee, damit herumzuspielen.

Verwandte Themen