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-viewall'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.replacereindirizza 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 /twoogni volta che l'URL è /. Voglio solo rendere la vista Twoquando 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.