ユーザーがルートパスに移動したときに特定のページにデフォルト設定したい、つまり使用されたときにmyapp.comに移動したい場合はmyapp.com/defaultpageにリダイレクトしたい
私の現在のコードは
index.js
import Full from '../containers/Full'
import DefaultView from '../views/DefaultView'
export default new Router({
mode: 'history',
linkActiveClass: 'open active',
scrollBehavior: () => ({ y: 0 }),
routes: [
{
path: '/',
redirect: '/defaultview',
name: 'home',
component: Full,
children: [
{
path: '/defaultview',
name: 'defaultview',
component: DefaultView
},
{
path: '*',
component: NotFoundComponent
}
}
]})
ユーザーがmyapp.comにアクセスすると、「404ページが見つかりません」、つまりNotFoundComponentが表示されます。 myapp.com/defaultviewと入力した場合のみ、正しいページにアクセスできます。
何か案は?
子を使用する場合、親のURLプレフィックスを削除します
交換する "/defaultview"
〜defaultview
は親パスコンポーネントを削除するため、実際のコードは次のようになります。
routes: [
{
path: '/',
redirect: '/defaultview',
name: 'home',
component: Full,
children: [
{
path: 'defaultview', /* changed */
name: 'defaultview',
component: DefaultView
},
{
path: '*',
component: NotFoundComponent
}
]
}
参照 ネストされたルート
このコードを試してください:
routes: [
{
path: '/',
redirect: '/defaultview'
},
{
path: '/defaultview',
name: 'defaultview',
component: DefaultView
},
{
path: '*',
component: NotFoundComponent
}
]
1行のコードを使用して、つまりrouter.replace("myPath");
を追加することで実行できます。完全なコード:
import Vue from "vue";
import Router from "vue-router";
import MyComponent from "./my-component";
Vue.use(Router);
const routes = [
{ path: "/myPath", name: "myPath", component: MyComponent }
];
const router = new Router({
mode: "history", // Remove the hash from the URL, optional.
routes
});
router.replace("myPath");
export default router;