Ho creato una nuova app Vue con un percorso di base. A causa del fatto che l'app è incorporata in un'altra app Vue, questa app non esegue il rendering router-view
all'avvio. Se vuoi sapere di più su come o perché questa app è incorporata in un'altra app, dai un'occhiata qui:
montare le app Vue nel contenitore dell'app Vue principale
e la mia risposta a questo problema:
https://stackoverflow.com/a/58265830/9945420
All'avvio della mia applicazione, esegue il rendering di tutto tranne il router-view
. Voglio reindirizzare all'avvio dall'URL del browser indicato. Questa è la mia configurazione del router :
import Vue from 'vue';
import Router from 'vue-router';
import One from './views/One.vue';
import Two from './views/Two.vue';
Vue.use(Router);
const router = new Router({
base: '/my-embedded-app/',
mode: 'history',
routes: [
{
path: '/',
component: One,
},
{
path: '/two',
component: Two,
},
],
});
router.replace(router.currentRoute.fullPath);
export default router;
Voglio che l'app renda il componente Due durante la chiamata .../my-embedded-app/two
. Sfortunatamente, router.replace
reindirizza sempre a /
(quindi l'URL del browser è .../my-embedded-app/
). Ho eseguito il debug di router
, e ho visto che il percorso è /
, ma mi sarei aspettato che fosse /two
.
Nota importante:
non voglio reindirizzare l'utente /two
ogni volta che l'URL è /
. Voglio solo rendere la vista Two
quando l'URL è /two
. Attualmente no.
Cosa potrebbe esserci di sbagliato? Forse non ho nemmeno bisogno di quel reindirizzamento e posso risolvere il problema in un modo più elegante.