So habe ich eine Struktur wie dieseVue Kind Daten von untergeordneten Komponente zu Komponente zu übergeben
<Root>
<HomeNav> router-view
<RouterLink>
<RouterLink>
<RouterLink>
<RouterLink>
<RouterLink>
<Home> router-view
<RouterLink>
Nun wird jeder HomeNav Router-Links, indem die Daten in der Komponente Ändern von Daten zu root vorbei, aber das bedeutet, dass ich müssen diese Daten binden:
<router-view v-bind:title="title" v-bind:text="text" v-bind:youtube="youtube" v-bind:transition="transition"></router-view>
und die Funktionen laufen auf erstellt und aktualisiert:
new Vue({
el: '#app',
router,
data: Variables,
created: function() {
path = pathname.pathname();
pathLenght = pathname.countPathLenght(path);
this.homeText(this.data);
},
updated: function() {
path = pathname.pathname();
pathLenght = pathname.countPathLenght(path);
Pace.restart()
this.homeText(this.data);
},
methods: {
homeText(data) {
data = toogleData.checkText(data);
this.title = data[0];
this.text = data[1];
this.youtube = data[2];
}
}
})
Das Problem ist jedoch, dass ich diese Daten nicht für alle Routen benötige, und ich muss diese Funktion ".homeText" nicht auslösen oder diese spezifischen Daten an jedes einzelne root binden. Es wird nur auf der Homepage benötigt, also die erste Route.
Die Frage ist also, ist es möglich, Daten von HomeNav-Komponente direkt zu Home-Komponente übergeben, ohne all diesen Code in globalen (Root) -Komponente?
sieht gut @Justin MacArthur, wie es geht, wenn 2 Variablen ändern müssen, d. H. Titel und Text? – Przemek
Von dem, was ich erinnere mich an jeden Parameter nach dem Namen des Ereignisses ist die Funktion zugeordnet. so wird '$ on (name, arg1, arg2, ..., argN)' mit '$ emit (name, 'arg1', 'arg2', ..., argN)' –
aufgerufen. Kann MessagePump auch einen anderen Namen haben wenn ich es auch für etwas anderes benutzen möchte? Ie MessagePump2? – Przemek