Vue中router-view和子路由的使用方法

18 篇文章 1 订阅
13 篇文章 0 订阅

应用场景:实现一个随着切换tab栏,头部底部不变,中间内容变得功能需求。

首先需要在路由文件中添加子路由(children):

import Vue from 'vue'
import Router from 'vue-router'
import Home from '@/views/Home.vue'
import Content1 from '@/views/Content1.vue'
import Content2 from '@/views/Content2.vue'
import Content3 from '@/views/Content3.vue'
import Content4 from '@/views/Content4.vue'
Vue.use(Router)

export default new Router({
  mode: 'history',
  base: process.env.BASE_URL,
  routes: [
    {
      path: '/',
      name: 'home',
      component: Home,
      children: [
        {
          path: '/content1',
          name: 'content1',
          component: Content1
        },
        {
          path: '/content2',
          name: 'content2',
          component: Content2
        },
        {
          path: '/content3',
          name: 'content3',
          component: Content3
        },
        {
          path: '/content4',
          name: 'content4',
          component: Content4
        }
      ]
    }
  ]
})

子路由已经创建完毕,分别创建对应的子路由文件,即中间要显示的内容:
在这里插入图片描述

然后在父路由Home.vue文件中,增加router-view块,写法如下:

<template>
  <div class="about" style="background-color: #edeeef;width: 100%;">
    <nav-header />
    <router-view />
    <nav-footer />
  </div>
</template>
<script type="text/javascript">
import NavHeader from '../components/NavHeader'
import NavFooter from '../components/NavFooter'
import Vue from 'vue'
export default {
	name: 'Home'
    components: {
        NavHeader,
        NavFooter
    }
}
</script>

tab栏写在NavHeader.vue文件内

<template>
   <div style="background-color: red;font-size: 0.15rem;">
     这是header
     <div class="tab">
        <router-link to="/content1">content1</router-link>
        <router-link to="/content2">content2</router-link>
        <router-link to="/content3">content3</router-link>
        <router-link to="/content4">content4</router-link>
     </div>
   </div>
</template>
<style type="text/css">
  .tab{
    display: flex;
    justify-content: space-between;
  }
</style>
<script>
export default {
  name: 'NavHeader'
}
</script>

然后就可以随着切换不同的tab选项,渲染不同的子路由文件内容了,且header和footer不变:
简单的demo示例如下:
在这里插入图片描述

在这里插入图片描述

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值