Vue Vue-route (3)

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 嵌套路由配置、使用示例。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JSON_L

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值