iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 23
0

製作巢狀路由

昨天介紹如何新增路由及路由連結,今天再來更深入一點點,就是製作巢狀路由,在切換元件的時候,如果只想切換部份內容,就可以使用巢狀路由的方式,馬上來看看範例吧!

src/components/Child1.vue

<template>
  <div class="hello">
    <h2>This is Child 1 !!!!</h2>
  </div>
</template>

<script>
export default {
  name: 'Child1',
  data () {}
}
</script>

這裡我先建立三個 .vue 檔,內容僅有 Child1 改為 Child2、Child3 這樣。

src/components/Page.vue

<template>
  <div class="hello">
    <h1>{{msg}}</h1>
    <router-view></router-view>
  </div>
</template>

<script>
export default {
  name: 'Page',
  data () {
    return {
      msg: 'Hello Vue'
    }
  }
}
</script>

接下來,在昨天的 Page 的檔案裡新增 router-view 。

router/index.js

import Child1 from '@/components/Child1'
import Child2 from '@/components/Child2'
import Child3 from '@/components/Child3'

Vue.use(Router)

export default new Router({
  routes: [
    {
      path: '/',
      name: 'HelloWorld',
      component: HelloWorld
    },
    {
      path: '/page',
      name: 'Page',
      component: Page,
      children: [
        {
          path: '',
          name: 'Child1',
          component: Child1
        },
        {
          path: 'child2',
          name: 'Child2',
          component: Child2
        },
        {
          path: 'child3',
          name: 'Child3',
          component: Child3
        },
      ]
    },
  ]
})

然後到 router 的配置檔 index.js 裡,在 Page 的配置裡新增 childrens 的屬性,內容是陣列,接下來就將 Child1 到 Child3 的配置輸入如上,這裡需要注意的是 Child1 的路徑我們並沒有設定,這樣在我們訪問 Page 的頁面的時候會預設帶入 Child1 的內容,再來就是路徑的設定盡量不要用大寫的英文字母。

這時運行後打開頁面,就可以到 Page 的頁面上看到 Child1 的內容囉!
如果要切換成 Child2 的內容,只要更改路由為http://localhost:8080/#/page/child2就可以囉!
但是,其實還有一個地方沒有完成,就是我們還沒有新增路由的連結,所以讓我們來完成一下。

src/components/Page.vue

<template>
  <div class="hello">
    <h1>{{msg}}</h1>
    <router-link to="/page">Child1</router-link>
    <router-link to="/page/child2">Child2</router-link>
    <router-link to="/page/child3">Child3</router-link>
    <router-view></router-view>
  </div>
</template>

新增路由的內容就如上,其實就跟昨天的方法一樣唷!是不是很簡單呢!?

那麼,明天再見囉!


上一篇
Day 22 : 新增路由路徑
下一篇
Day 24 : 同一路徑載入多個頁面元件
系列文
Vue 學習筆記 - 讓你30天掌握 Vue31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言