基于routerView 的动态子路由应用

开发的时候有时候会遇到一种情况,比如 :点击这个链接跳转到其他组件的情况,通常会跳转到新的页面,但是,我们不想跳转到新页面,只在当前页面切换着显示(提高用户的使用体验),那么就要涉及到路由的嵌套了,也可以说是子路由的使用。下面就详细的说说 子路由的应用

             1 在同个页面切换显示不同的组件

             2 在同个页面,切换显示不同组件的相应内容,同时地址栏的地址是会变的(不同于当前页面import 相应的组件 进行显示隐藏,import组件方式会占用页面加载需要的时间)

                同时地址栏的地址是会变的:可以通过不使用router-link 组件,采用监听点击事件click方法 执行 this.$router.replace() 达到回退一次的目的

2771cd89aade3c2b84d7dda8d1575366a4f.jpg

 

首先 我们在导航组件tab.vue中写了三个导航链接,他们对应地址分别为:/food,/rating,/seller,点击每个导航链接会跳转到不同的组件,并且加上<router-view></router-view>这个标签

<template>
	<div class="navbar">
		<ul id="main">
			<li><router-link  to="/food" >商品</router-link></li>
			<li><router-link  to="/rating">评价</router-link></li>
			<li><router-link  to="/seller">商家</router-link></li>
 
		</ul>
		
            <!-- 路由匹配到的组件将显示在这里 -->
           <router-view></router-view>
	</div>
</template>

然后,我们在index.vue引入tab.vue:


<template>
	<div class="index">
		<div class="nav"></div>
		<div class="shop-header">
			<div class="imgbox"><img src="../../static/img/56.jpg" alt="" /></div>
			<h2>黄蜀郞鸡公煲<span class="ico"></span></h2>
			<p class="info1"><span>*4.6</span><span>月售738</span><span>商家配送约44分钟</span><span>距离345m</span></p>
			<p class="info2">店内免费涮煲,(蔬菜、小料、主食、糕点、凉菜、水果、免费吃)闻香识辣,入口知麻,一锅两吃,独具特色!!!外卖米饭请自点!!评价问题商家会一一看,可能不能及时回复。有问题详询18232966036</p>
 
		</div>
 
 
         <!--在这里引入navbar组件在这里引入navbar组件在这里引入navbar组件在这里引入navbar组件-->
		<navbar></navbar>
         <!--在这里引入navbar组件在这里引入navbar组件在这里引入navbar组件在这里引入navbar组件-->
		
		
		
	</div>
</template>
 
<script>
	import tab from '@/components/tab'
	
	import food from '@/components/food'
	export default {
		name: 'HelloWorld',
		data() {
			return {
				
				msg:[]
			}
		},
 
		components: {
			tab
			
		}
	}
</script>

子路由配置

{
    path: '/',
    name: 'index',
    component: index,
    redirect:'/food',
    meta: {needLogin: false,name:'菜单列表'},
    children: [
                {
                    path: 'food',
                    name: 'food',
                    meta: {needLogin: false,title:'菜单列表'},
                    component: food
                },
                {
                    path: 'seller',
                    name: 'seller',
                    meta: {needLogin: true,title:'销售业绩'},
                    component: seller
                },
                {
                    path: 'rating',
                    name: 'rating',
                    meta: {needLogin: true,title:'评价'},
                    component: rating
                }
    ]
}

 

转载于:https://my.oschina.net/mirclewang/blog/3041874

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值