美文网首页Web 前端
vue router 多路由及路由嵌套

vue router 多路由及路由嵌套

作者: 时光觅迹 | 来源:发表于2021-04-06 15:13 被阅读0次

在 vue 中使用 router 进行前端路由,可实现不跳转切换页面或局部切换页面,而且往往需要进行局部切换页面的地方不止一个,此时就需要用到 多路由 或 路由嵌套 来实现。

1、简单路由(单路由)

  • App.vue:
<template>
  <div id="app">
    <router-view />
  </div>
</template>

<script>
export default {
    name: 'App'
}
</script>
  • Test.vue:
<template>
  <div id="testModule">
    <p>我是 test 组件页面</p>
  </div>
</template>

<script>
export default {
    name: 'TestModule'
}
</script>
  • router.js
import Vue from 'vue'
import Router from 'vue-router'

import TestModule from '@/components/Test'

Vue.use(Router)

export default new Router({
  routes: [
      {
          path: '/',
          name: 'Test',
          component: TestModule
      }
  ]
})

2、多路由

一个页面存在多个路由时,除了默认路由以外,其余路由通过属性 ‘name’ 来做区分。

  • App.vue:
<template>
  <div id="app">
    <router-view />
    <router-view name="test2" />
  </div>
</template>

<script>
export default {
    name: 'App'
}
</script>
  • Test.vue:
<template>
  <div id="testModule">
    <p>我是 test 组件页面</p>
  </div>
</template>

<script>
export default {
    name: 'TestModule'
}
</script>
  • Test2.vue:
<template>
  <div id="testModule2">
    <p>我是 test 2 组件页面</p>
  </div>
</template>

<script>
export default {
    name: 'TestModule2'
}
</script>
  • router.js
import Vue from 'vue'
import Router from 'vue-router'

import TestModule from '@/components/Test'
import TestModule2 from '@/components/Test2'

Vue.use(Router)

export default new Router({
  routes: [
      {
          path: '/',
          name: 'Test',
          components: {
              default: TestModule,  // 默认路由
              test2: TestModule2    // name 为 'test2' 的路由
          }
      }
  ]
})

3、嵌套路由

一个路由里面的子组件中,还存在另一个路由,这时就成为了嵌套的路由。

  • App.vue:
<template>
  <div id="app">
    <router-view />
    <router-view name="test2" />
  </div>
</template>

<script>
export default {
    name: 'App'
}
</script>
  • Test.vue:
<template>
  <div id="testModule">
    <p>我是 test 组件页面</p>
    
    <div>下面是子组件的路由</div>
    <router-view name="testSub" />
  </div>
</template>

<script>
export default {
    name: 'TestModule'
}
</script>
  • TestSub.vue:
<template>
  <div id="testModuleSub">
    <p>我是 test sub 组件页面</p>
  </div>
</template>

<script>
export default {
    name: 'TestModuleSub'
}
</script>
  • Test2.vue:
<template>
  <div id="testModule2">
    <p>我是 test 2 组件页面</p>
  </div>
</template>

<script>
export default {
    name: 'TestModule2'
}
</script>
  • router.js
import Vue from 'vue'
import Router from 'vue-router'

import TestModule from '@/components/Test'
import TestModuleSub from '@/components/TestSub'

import TestModule2 from '@/components/Test2'

Vue.use(Router)

export default new Router({
  routes: [
      {
          path: '/',
          name: 'Test',
          components: {
              default: TestModule,  // 默认路由
              test2: TestModule2    // name 为 'test2' 的路由
          },
          children: [  // 子路由嵌套
              {
                  // 通过 'http://ip/testsub/' 来访问子路由
                  path: 'testsub',
                  components: {
                      // TestModule 里面 name 为 'testSub' 的路由
                      testSub: TestModuleSub
                  }
              }
          ]
      }
  ]
})

相关文章

  • 手写 Vue Router、手写响应式实现、虚拟 DOM 和 D

    Vue-Router 原理实现 一、Vue-Router 动态路由 二、Vue-Router 嵌套路由 三、Vue...

  • vue路由

    路由:vue-router 案例: 1.路由 2.路由的嵌套

  • 6 VUE路由

    vue-> SPA应用,单页面应用(引入vue-router.js) 路由嵌套(多层路由): 路由其他信息:

  • 前端理论面试-router+axios

    Vue Router Vue Router 是 Vue.js 官方的路由管理器。 包含的功能有: 嵌套的路由/视图...

  • vue-router 常用知识点一

    目录 - 1.vue-router响应 路由参数 的变化 - 2.vue-router如何定义嵌套路由? - 3....

  • vue-router

    前端路由的基本原理 vue-router的基本使用 命名路由 路由参数 嵌套路由

  • vue 第八章

    路由1.路由下载用gitnpm install vuenpm install vue-router 2.路由嵌套嵌...

  • Vue-基础-05-重点

    Vue-基础-day05-重点 01-基础-路由-vue-router-嵌套路由 children用法和route...

  • Vue路由全解

    路由基础 router-link router-view router.js 动态路由匹配 嵌套路由 命名路由 命...

  • 8月第二周

    8.7 vue-cli vue-router 用法总结: 包含默认路由的地址写法,父子路由的嵌套,redirec...

网友评论

    本文标题:vue router 多路由及路由嵌套

    本文链接:https://www.haomeiwen.com/subject/rubbhltx.html