路由query和params传参

news/2024/7/10 1:42:18 标签: javascript, 开发语言, ecmascript, vue.js, vue

文章目录

  • 路由配置
  • query传参
  • params传参
  • props参数
    • 接收params传参
    • 接收query传参
    • 相同的接收参数形式

路由配置

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>

http://www.niftyadmin.cn/n/1154743.html

相关文章

vue slot 插槽

文章目录默认插槽基本写法v-slot具名插槽基本写法v-slot作用域插槽基本写法默认插槽使用v-slot具名插槽使用v-slot默认插槽 基本写法 <template><div class"container"><!-- //默认插槽 --><!-- 基本写法 --><category>我是插入的内…

推荐下Vimium

2019独角兽企业重金招聘Python工程师标准>>> Vimium可使chrome脱离鼠标&#xff0c;让网页浏览更高效&#xff0c;在简单的熟悉后的确感觉高效了很多。 如yy直接可以将网址复制&#xff0c;yf可以指定复制页面中的连接&#xff0c;T可以在已经打开的标签中迅速定位…

ubuntu17.10 安装firefox的flash

1. flash下载地址&#xff1a;https://get.adobe.com/flashplayer/ 2. 选择tar.gz for linux 3. 下载后解压tar包。里面有个libflashplayer.so&#xff0c;将该文件拷贝到~/.mozilla/plugins/下&#xff0c;重启浏览器即可。&#xff08;如果没有plugins目录&#xff0c;自行创…

oracle日期字段只取日期不要时间

oracle日期字段只取日期不要时间 1. TO_CHAR(Sysdate, YYYY-MM-DD HH24:MI)中的YYYY-MM-DD HH24:MI格式分为两部分&#xff0c;YYYY-MM-DD为日期部分&#xff0c;HH24:MI为时间部分。Select TO_CHAR(Sysdate, YYYY-MM-DD HH24:MI) From Dual;显示的是日期和时间&#xff1b…

element-ui中table的slot-scope

学习中遇到下列代码 <el-table-column><template v-slot"scope"><span class"message-title">{{scope.row.title}}</span></template> </el-table-column>开始以为是作用域插槽&#xff0c;一直在想在哪写的组件传参…

N天学习一个linux命令之scp

用途 通过ssh通道&#xff0c;不同主机之间复制文件 用法 scp [options] [userhost:]file1 [user2host2:]file2 常用参数 -1使用 ssh 1协议 -2使用ssh 2协议 -4 仅使用IPv4地址 -6仅使用IPv6地址 -B 选择批处理模式&#xff0c;不询问输入密码或者其它授权信息 -C启用压缩&…

克隆到本地的Vue项目运行报错 “‘vue-cli-service‘”不是内部或外部命令

克隆到本地后node_modules依赖包消失了&#xff0c;需要手动添加 进入项目文件夹执行 npm install执行完出现一个新的node_modules依赖包 然后运行项目即可

用js转换时间戳为日期格式

(1)&#xff1a;转换成 2011-3-16 16:50:43 格式&#xff1a; function getDate(tm){ var ttnew Date(parseInt(tm) * 1000).toLocaleString().replace(/年|月/g, "-").replace(/日/g, " ") return tt; } &#xff08;2&#xff09;&#xff1a;转换成 20…