关于在vue项目中使用 Tabbar 时 router-view的使用 以及 动态设置重定向

关于在vue项目中使用 Tabbar 时 router-view的使用 以及 动态设置重定向 的一些问题

一:前言

在 vue 开发过程中,我们会发现很少使用到 router-view 这个东西,最近有个项目需求是4个 tabbar 页面,刚好用到了这个必不可少的东西,也遇到了一些问题,特来总结一下。
一开始出发点很简单,几个页面跳转而已吗,路由跳就是了,结果发现并不是我们想要的结果,因为我们 不想跳转到新页面,只在当前页面切换着显示,这里就涉及到了 router-view 这个东西

二:实现

以此项目为例,

在这里插入图片描述

在同一个页面,切换显示不同组件也就是页面的内容,同时改变路由地址。

分离组件

首先,我们在底部的Tabbar组件中写了几个导航标签,并且加上 router-view这个标签
pollManageFooter.vue:

// 底部 Tabbar 组件
	<div class="navbar">
		<ul id="main">
			<li><router-link  to="/pollManageInfo" >首页</router-link></li>
			<li><router-link  to="/pollManageDetails">详情</router-link></li>
			<li><router-link  to="/pollManageSignUp">报名</router-link></li>
 
		</ul>
		
            <!-- 路由匹配到的组件将显示在这里 -->
           <router-view></router-view>

然后,我们需要有一个公共页面来引入 pollManageFooter.vue
index.vue:

<template>
    <div class="votemain">
        <router-view></router-view>
        <pollManageFooter></pollManageFooter>
    </div>
</template>

<script>
    // 底部 悬浮栏
    import pollManageFooter from "./pollManageFooter/pollManageFooter"

    export default {
        name: "votePollManage",
        components:{
            pollManageFooter,
        }
    }
</script>

之后,路由配置时,需将你的 index 页面作为父页面来切换展示 子页面。
在这里插入图片描述
此时,需要有一个默认页面,也就是 首页 的页面,在 redirect 中写入即可。

三:redirect 的 动态重定向设置

以我项目为例,我的 跳转页面是需要分享至 微信的,此时分享出去的页面也得有一个 tabbar,可在分享页面中点击切换,此时就涉及到 分享不同的页面你 父页面将会默认显示不同页面的一个问题,这里就需要将 redirect 进行动态设置来根据 路由参数 的不同而默认显示不同的页面。

{
        path: '/share/shareVotePollManage/index_1',
        name: 'shareVotePollManage',
        component: shareVotePollManage,
        redirect: to => {
            const {hash , params , query} = to;
            if (params.str == "shareVoteInfo"){
                return '/sharePollManageInfo'
            }else if (params.str == "shareVoteDetail"){
                return '/sharePollManageDetails'
            }else if (params.str == "shareVoteRank") {
                return '/sharePollManageRanking'
            }
        },
        children:[

根据你前端所传的参数名的不同来显示。

四,总结。

虽说是一个不复杂的东西,但做项目时真正遇见的小问题也确实让人心烦,所以,记录一下,觉得有用的话可以点个赞再走哦。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值