Vue Vue-route (3)

发布于:2025-07-02 ⋅ 阅读:(32) ⋅ 点赞:(0)

Vue 渐进式JavaScript 框架 基于Vue2的学习笔记 - Vue-route嵌套路由

 

目录

Vue-route路由

嵌套路由

创建页面

定义二级路由

使用二级路径

设置二级导航默认

非二级路径

创建搜索页面

设置路由

总结


Vue-route路由

嵌套路由

之前定义的都是一级路由,那如何定义二级路由,甚至多级路由?

创建页面

在定义二级路由前,需要选创建相应的页面;

为了结构分明,创建以一级路由文件名称的文件夹下创建二级页面。

示例如下:

 

定义二级路由

先导入页面然后在router/index.js中相应路由配置下,

设置children属性来定义二级路由。

示例如下:

import Vue from 'vue'
import VueRouter from 'vue-router'
import Films from '@/views/FilmsView'
import Cinemas from '@/views/CinemasView'
import Center from '@/views/CenterView'
import NowPlaying from '@/views/films/NowPlaying'
import ComingSoon from '@/views/films/ComingSoon'

Vue.use(VueRouter) // 注册路由插件

// 配置表
const routes = [
  {
    path: '/films',
    name: 'films',
    component: Films,
    children: [
      {
        path: '/films/nowplaying',
        component: NowPlaying
      },
      {
        path: '/films/comingsoon',
        component: ComingSoon
      }
    ]
  },
  {
    path: '/cinemas',
    name: 'cinemas',
    component: Cinemas
  },
  {
    path: '/center',
    name: 'center',
    component: Center
  },
  {
    path: '/',
    name: 'films',
    component: Films
  },
  {
    path: '*',
    component: Films
  }
]

使用二级路径

在filmsView页面把二级路径插入节点。

示例如下:

<template>
    <div>
        <div style="height:200px;background:yellow;">大轮播</div>

        <div>
            二级的声明式导航
        </div>

        <router-view></router-view>
    </div>
</template>

 

设置二级导航默认

二级路径也可以设置默认显示,还是在router/index.js中。

示例如下:

// 配置表
const routes = [
  {
    path: '/films',
    name: 'films',
    component: Films,
    children: [
      {
        path: '/films/nowplaying',
        component: NowPlaying
      },
      {
        path: '/films/comingsoon',
        component: ComingSoon
      },
      {
        path: '/films',
        redirect: '/films/nowplaying'
      }
    ]
  },
非二级路径
创建搜索页面

在views下创建SearchView页面文件。

示例如下:

 

设置路由

有些路由看似是二级路由,但如果直接替换一级路由内容,则并非从属一级路由;

而只是显示为二级路由。如电影页面上显示很多电影列表信息,

但是一点击搜索则全部替换为搜索页面。

示例如下:

import Vue from 'vue'
import VueRouter from 'vue-router'
import Films from '@/views/FilmsView'
import Cinemas from '@/views/CinemasView'
import Center from '@/views/CenterView'
import NowPlaying from '@/views/films/NowPlaying'
import ComingSoon from '@/views/films/ComingSoon'
import Search from '@/views/SearchView'

Vue.use(VueRouter) // 注册路由插件

// 配置表
const routes = [
  {
    path: '/films',
    name: 'films',
    component: Films,
    children: [
      {
        path: '/films/nowplaying',
        component: NowPlaying
      },
      {
        path: '/films/comingsoon',
        component: ComingSoon
      },
      {
        path: '/films',
        redirect: '/films/nowplaying'
      }
    ]
  },
  {
    path: '/cinemas',
    name: 'cinemas',
    component: Cinemas
  },
  {
    path: '/cinemas/search',
    name: 'search',
    component: Search
  },
  ......
]

 

总结

Vue 渐进式JavaScript 框架 基于Vue2的学习笔记 - Vue-route 嵌套路由配置、使用示例。


网站公告

今日签到

点亮在社区的每一天
去签到