多路由拼图

知识点

为一个路由(画面)组合多个组件,完成整个页面。

  • router-view[name]
  • components

实战演习

  • Header.vue
  • Sidebar.vue
  • Detail.vue
  • router/index.js
  • App.vue

setting/Header.vue

  1. <template>
  2. <div>
  3. <h1>标题栏</h1>
  4. <div>欢迎来到小马Vue.js课程系列</div>
  5. </div>
  6. </template>

setting/Sidebar.vue

  1. <template>
  2. <div>
  3. <h1>边条</h1>
  4. </div>
  5. </template>

setting/Detail.vue

  1. <template>
  2. <div>
  3. <h1>详细显示</h1>
  4. <p>Vue.js是一套用于构建用户界面的渐进式框架。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。另一方面,当与现代化的工具链以及各种支持类库结合使用时,Vue 也完全能够为复杂的单页应用提供驱动。</p>
  5. </div>
  6. </template>

router/index.js

  1. import SettingDetail from '@/components/setting/Detail'
  2. import SettingHeader from '@/components/setting/Header'
  3. import SettingSidebar from '@/components/setting/Sidebar'
  4. ...
  5. routes: [
  6. {
  7. path: '/',
  8. name: 'Home',
  9. components: {
  10. myHeader: SettingHeader,
  11. mySidebar: SettingSidebar,
  12. myDetail: SettingDetail
  13. }
  14. }
  15. ]

App.vue

  1. <template>
  2. <div id="app">
  3. <table width="100%">
  4. <tr>
  5. <td colspan="2" style="background-color:darkgoldenrod">
  6. <router-view name="myHeader"></router-view>
  7. </td>
  8. </tr>
  9. <tr>
  10. <td width="20%" style="background-color:thistle">
  11. <router-view name="mySidebar"></router-view>
  12. </td>
  13. <td width="80%" style="background-color:aquamarine">
  14. <router-view name="myDetail"></router-view>
  15. </td>
  16. </tr>
  17. </table>
  18. </div>
  19. </template>

课程文件

https://gitee.com/komavideo/LearnVueJS2

小马视频频道

http://komavideo.com