目录一、query传参二、params传参三、动态传参四、query传参和params传参的区别总结一、query传参 编程式导航 使用router.push 或者 router.r
编程式导航 使用router.push
或者 router.replace
的时候,改为对象形式新增query
必须传入一个对象
import { useRouter } from 'Vue-router';
...
const router = useRouter()
const toDetail = (item: Item) => {
router.push({
path: '/info',
query: item
})
}
接受参数
使用 useRoute
的 query
<template>
<div>
<div>ID:{{route.query?.id}}</div>
<div>名称:{{route.query?.name}}</div>
<div>价格:{{route.query?.price}}</div>
</div>
</template>
<script setup lang='ts'>
import { useRoute } from 'vue-router';
...
const route = useRoute()
</script>
<style lang='less' scoped>
</style>
编程式导航 使用router.push
或者 router.replace
的时候,改为对象形式并且只能使用name
,path无效,然后传入params
import { useRouter } from 'vue-router';
...
const router = useRouter()
const toDetail = (item: Item) => {
router.push({
name: 'Info',
params: item
})
}
接受参数
使用 useRoute
的 params
<template>
<div>
<div>ID:{{route.params?.id}}</div>
<div>名称:{{route.params?.name}}</div>
<div>价格:{{route.params?.price}}</div>
</div>
</template>
<script setup lang='ts'>
import { useRoute } from 'vue-router';
...
const route = useRoute()
</script>
<style lang='less' scoped>
</style>
很多时候,我们需要将给定匹配模式的路由映射到同一个组件。
例如,我们可能有一个 User 组件,它应该对所有用户进行渲染,但用户 ID 不同。在 Vue Router 中,我们可以在路径中使用一个动态字段来实现,我们称之为 路径参数
// router.ts
import { createRouter, createWEBHistory, RouteRecordRaw } from "vue-router";
const routes: Array<RouteRecordRaw> = [{
path: '/',
name: 'table',
component: () => import('@/view/Table/index.vue')
}, {
path: '/info/:id',
name: 'Info',
component: () => import('@/view/Table/info.vue')
},
...
]
const router = createRouter({
history: createWebHistory(),
routes
})
export default router
import { useRouter } from 'vue-router';
...
const router = useRouter()
const toDetail = (item: Item) => {
router.push({
name: 'Info',
params: {id: item.id}
})
}
接受参数
使用 useRoute
的 params
<template>
<div>
<div>ID:{{ item?.id }}</div>
<div>名称:{{ item?.name }}</div>
<div>价格:{{ item?.price }}</div>
</div>
</template>
<script setup lang='ts'>
import { useRoute } from 'vue-router';
import { data } from './data.JSON'
...
const route = useRoute()
// 模拟根据id获取数据
const item = data.find(v => v.id === Number(route.params.id))
</script>
<style lang='less' scoped>
</style>
到此这篇关于vue3中路由传参query、params及动态路由传参的文章就介绍到这了,更多相关vue3路由传参query params内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!
--结束END--
本文标题: vue3中路由传参query、params及动态路由传参详解
本文链接: https://www.lsjlt.com/news/168171.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-01-12
2023-05-20
2023-05-20
2023-05-20
2023-05-20
2023-05-20
2023-05-20
2023-05-20
2023-05-20
2023-05-20
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0