在启动时通过给定的浏览器URL重定向

hrp*_*xQ4 10 javascript vue.js vue-router vuejs2

我用基本路径创建了一个新的Vue应用程序。由于该应用程序已嵌入到另一个Vue应用程序中,因此该应用程序router-view在启动时不会呈现。如果您想了解更多有关如何或为何将此应用程序嵌入到另一个应用程序中的信息,请在此处查看:

将Vue应用安装到主Vue应用的容器中

我对这个问题的回答:

/sf/answers/4078608131/

启动我的应用程序时,它将呈现除以外的所有内容router-view。我想在启动时通过给定的浏览器URL进行重定向。这是我的路由器配置:

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;
Run Code Online (Sandbox Code Playgroud)

我希望应用程序在调用时呈现组件Two.../my-embedded-app/two。不幸的是,router.replace总是重定向到/(因此浏览器URL是.../my-embedded-app/)。我调试了router,发现路径是/,但是我希望它是/two

重要说明:/two url为时, 我不想将用户重定向到/。我只想Two在url为时呈现视图/two。目前还没有。

可能是什么问题?也许我什至不需要重定向,并且可以以更优雅的方式解决问题。

Var*_*sMT 1

更新:jsfiddle

结果发生的是route.currentRoute.fullPath在路由器准备好之前执行的。