基本パスを使用して新しいVueアプリを作成しました。アプリが別のVueアプリに埋め込まれているため、このアプリはrouter-view
起動時にをレンダリングしません。このアプリが別のアプリに組み込まれる方法または理由について詳しく知りたい場合は、こちらをご覧ください。
この問題に対する私自身の答え:
https://stackoverflow.com/a/58265830/9945420
アプリケーションを起動すると、以外のすべてがレンダリングされます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;
アプリがを呼び出すときにコンポーネントTwoをレンダリングする必要があります.../my-embedded-app/two
。残念ながら、router.replace
常にリダイレクトします/
(そのため、ブラウザのURLはです.../my-embedded-app/
)。私はをデバッグrouter
し、パスが/
であることを確認し/two
ましたが、そうであると期待しています。
重要な注意:/two
URLがのときはいつでも
ユーザーをリダイレクトしたくありません/
。Two
URLがのときにビューをレンダリングしたいだけです/two
。現在はありません。
何が悪いのでしょうか?多分私はそのリダイレクトさえ必要とせず、よりエレガントな方法で問題を解決できます。