路由query和params传参

路由配置

export default new VueRouter({
    routes:[
        {
            path:'/about',
            component:About
        },
        {
            path:'/home',
            component:Home,
            children:[
                {
                    path:'news',
                    component:News,
                },
                {
                    path:'message',
                    component:Message,
                    children:[
                        {
                            path:'detail',
                            component:Detail,
                        }
                    ]
                }
            ]
        }
    ]
})

query传参

<template>
	<div>
		<ul>
			<li v-for="m in messageList" :key="m.id">
				<!-- query传参的字符串写法 -->
				<!-- <router-link :to="`/home/message/detail?id=${m.id}&title=${m.title}`">{{m.title}}</router-link> -->
				<!-- query传参的对象写法 -->
				<router-link :to="{
					path:'/home/message/detail',
					query:{
						id:m.id,
						title:m.title
					}
				}">
				{{m.title}}
				</router-link>
			</li>
		</ul>
		<br>
		<router-view></router-view>
	</div>
</template>

<script>
	export default {
		name:'Message',
		data(){
			return {
				messageList:[
					{id:'001',title:'白猪'},
					{id:'002',title:'大漂亮'},
					{id:'003',title:'狗子'},
				]
			}
		}
	}
</script>

子组件中接收参数

$route.query.id
$route.query.id

params传参

params传参需要配合命名路由使用
路由配置变化如下

children:[
   {
       name:'xiangqing',
       path:'detail/:id/:title',
       component:Detail,
       
   }
]

params传参

<template>
	<div>
		<ul>
			<li v-for="m in messageList" :key="m.id">
				<!-- params传参的字符串写法 -->
				<!-- <router-link :to="`/home/message/detail/${m.id}/${m.title}`">{{m.title}}</router-link> -->
				
				<!-- params传参的对象写法 -->
				<router-link :to="{
					name:'xiangqing',
					params:{
						id:m.id,
						title:m.title
					}
				}">
				{{m.title}}
				</router-link>
			</li>
		</ul>
		<br>
		<router-view></router-view>
	</div>
</template>

<script>
	export default {
		name:'Message',
		data(){
			return {
				messageList:[
					{id:'001',title:'白猪'},
					{id:'002',title:'大漂亮'},
					{id:'003',title:'狗子'},
				]
			}
		}
	}
</script>

参数接收

$route.params.id
$route.params.title

props参数

接收参数的一种新方法

接收params传参

params传参+下方路由配置项

{
                    path:'message',
                    component:Message,
                    children:[
                        {
                            name:'xiangqing',
                            path:'detail/:id/:title',
                            component:Detail,
                            props($route){
                                return {
                                    id:$route.params.id,
                                    title:$route.params.title
                                }
                            }
                        }
                    ]
                }

接收query传参

query传参+下方路由配置项

{
	path:'message',
	  component:Message,
	  children:[
	      {
	          name:'xiangqing',
	          path:'detail',
	          component:Detail,
	          props($route){
	              return {
	                  id:$route.query.id,
	                  title:$route.query.title
	              }
	          }
	      }
	  ]
	}

相同的接收参数形式

<template>
	<ul>
		<li>消息编号:{{id}}</li>
		<li>消息标题:{{title}}</li>
	</ul>
</template>

<script>
	export default {
		name:'Detail',
        props:['id','title']
	}
</script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值