[Vue.js]vue-router-ルーティング名(パス、ビュー)


ルーティングを作成する場合は、nameオプションでパス名を指定できます.
1.パス名の定義
const routes = [
  {
    path: '/user/:username',
    name: 'user',
    component: User
  }
]
宣言の仕方
<router-link :to="{ name: 'user', params: { username: 'erina' }}">
  User
</router-link>
プログラミングモード
router.push({ name: 'user', params: { username: 'erina' } })
2.ビュー名の定義
  • 2<router-view>タグのnameプロパティにビュー名を作成して定義できます.
    作成しない場合は、名前がdefaultの構成部品と一致します.
  • <router-view class="view left-sidebar" name="LeftSidebar"></router-view>
    <router-view class="view main-content"></router-view>
    <router-view class="view right-sidebar" name="RightSidebar"></router-view>
    import { createRouter, createWebHistory } from 'vue-router'
    import Home from './views/Home.vue'
    import LeftSidebar from './views/LeftSidebar.vue'
    import RightSidebar from './views/RightSidebar.vue'
    
    const router = createRouter({
      history: createWebHashHistory(),
      routes: [
        {
          path: '/',
          components: {
            default: Home, //명명하지 않은 router-view
            //  LeftSidebar: LeftSidebar 의 줄임
            LeftSidebar,
            RightSidebar,
          },
        },
      ],
    })
    3.ネストされたビューの名前を付ける
    /settings/emails
    /settings/profile
    <!-- UserSettings.vue -->
    <div>
      <h1>User Settings</h1>
      <NavBar />
      <router-view />
      <router-view name="helper" />
    </div>
    import { createRouter, createWebHistory } from 'vue-router'
    import UserSettings from './views/UserSettings.vue'
    import UserEmailsSubscriptions from './views/UserEmailsSubscriptions.vue'
    import UserProfile from './views/UserProfile.vue'
    import UserProfilePreview from './views/UserProfilePreview.vue'
    
    {
      path: '/settings',
      // You could also have named views at the top
      component: UserSettings,
      children: [{
        path: 'emails',
        component: UserEmailsSubscriptions
      }, {
        path: 'profile',
        components: {
          default: UserProfile,
          helper: UserProfilePreview
        }
      }]
    }
    前述したように、helperコンポーネントは/settings/profileパスでのみ指定されます.<router-view name="helper"/>と命名されたルータビューラベルは、/settings/profileパスにのみ表示されます.
    実行例)https://codesandbox.io/s/nested-named-views-vue-router-4-examples-re9yl?initialpath=/settings/emails&file=/src/router.js:0-299
    注-Vue Router公式ドキュメント
    https://next.router.vuejs.org/guide/