Ich habe eine dynamische Ansicht:
<div id="myview">
<div :is="currentComponent"></div>
</div>
mit einer zugeordneten Vue-Instanz:
new Vue ({
data: function () {
return {
currentComponent: 'myComponent',
}
},
}).$mount('#myview');
Dadurch kann ich meine Komponente dynamisch ändern.
In meinem Fall, ich habe drei verschiedene Komponenten: myComponent
, myComponent1
, und myComponent2
. Und ich wechsle zwischen ihnen so:
Vue.component('myComponent', {
template: "<button @click=\"$parent.currentComponent = 'myComponent1'\"></button>"
}
Jetzt möchte ich Requisiten weitergeben myComponent1
.
Wie kann ich diese Requisiten übergeben, wenn ich den Komponententyp in ändere myComponent1
?
javascript
vue.js
vuejs2
vue-component
Epitouille
quelle
quelle
propName="propValue"
. Ist das deine Frage?<myComponent1 propName="propValue">
ich ändere die Komponente programmgesteuert mit$parent.currentComponent = componentName
<div :is="currentComponent"></div>
. Dort würden Sie das Attribut hinzufügen.myComponent1
Nehmen Sie zum Beispiel Requisiten undmyComponent2
nehmen Sie keine RequisitenAntworten:
Um Requisiten dynamisch zu übergeben, können Sie die
v-bind
Anweisung zu Ihrer dynamischen Komponente hinzufügen und ein Objekt übergeben, das Ihre Requisitennamen und -werte enthält:Ihre dynamische Komponente würde also folgendermaßen aussehen:
Und in Ihrer Vue-Instanz
currentProperties
kann sich basierend auf der aktuellen Komponente Folgendes ändern:Wenn also das
currentComponent
istmyComponent
, hat es einefoo
Eigenschaft gleich'bar'
. Wenn dies nicht der Fall ist, werden keine Eigenschaften übergeben.quelle
<component>(here)</component>
. Ist das möglich?<slot>
für jede Komponente definieren, die Sie dynamisch rendern. vuejs.org/v2/guide/components-slots.htmlSie können auch auf berechnete Eigenschaften verzichten und das Objekt inline.
<div v-bind="{ id: someProp, 'other-attr': otherProp }"></div>
Wird in den Dokumenten zu V-Bind angezeigt - https://vuejs.org/v2/api/#v-bind
quelle
Sie könnten es bauen wie ...
quelle
Wenn Sie Ihren Code importiert haben, benötigen Sie
Sie können die Komponente auch über die Eigenschaft name referenzieren, wenn Ihre Komponente zugewiesen ist
quelle