Ich benutze Vue-Router mit einer Reihe von Komponenten wie Tabs. Jede <router-link>
ist eine Registerkarte und der Raum darunter ist die <router-view>
. Zwei der Registerkarten sind die gleiche Komponente mit verschiedenen Filtern, sagen wir, sie sind products
und der Router fügt einen Parameter zum Filtern hinzu: /products/new
& /products/sale
.Vue 2 <keep-alive> funktioniert nicht mit <router-view> und Schlüssel
Innerhalb von products
sind einzelne product
Komponenten, die montiert werden, wenn die Route geöffnet wird. Mein Problem ist, dass die product
Komponenten jedes Mal neu montiert werden, wenn ich zwischen den Routen wechsle und der Filterparameter geändert wird. Ich möchte sie zwischenspeichern, also ist das Wechseln einfacher und einfacher. Um dies zu tun, habe ich <keep-alive>
eingerichtet und :key='$route.fullPath'
zu meinem <router-view>
hinzugefügt, aber sie scheinen nicht zwischengespeichert zu werden. Jedes product
feuert noch ein mounted()
Ereignis, wenn ich zwischen products
umschalte.
<keep-alive>
<router-view :key='$route.fullPath'></router-view>
</keep-alive>
Sollte ich jeden products
Blick in eine separate Komponente?
Hallo Danke für den Hinweis, dass aus! Die erste Lösung, die mir in den Sinn kam, war, ' 'zu entfernen und meine dynamischen Komponenten wie: ' 'wo der Name der Route wäre der Name der Komponente Dies funktioniert in Bezug auf Routing, aber die Komponente wird immer noch neu montiert, wenn zwischen den beiden Versionen geklickt wird: \ –
okwme
Scheint nicht mehr wahr zu sein. Zitieren der [Router Dokumentation] (http://router.vuejs.org/en/api/router-view.html): 'Da es nur eine Komponente ist, funktioniert es mit und . Wenn Sie beide zusammen verwenden, stellen Sie sicher, dass Sie innen verwenden –
oliverpool