您现在的位置是:首页 >学无止境 >Vue Router中如何获取路由传递过来的参数网站首页学无止境

Vue Router中如何获取路由传递过来的参数

Kris-L- 2025-02-19 00:01:03
简介Vue Router中如何获取路由传递过来的参数

在Vue Router中可以通过动态路由匹配和查询参数query来传递参数;同时也可以将路由参数或查询参数作为组件的props传递,这样组件可以直接通过props来访问这些参数。
1. 动态路由匹配
如果在路由配置中使用了动态路由(如/user/:id),则可以通过route.params.id获取该参数。

// 路由配置
const routes = [
  { path: '/user/:id', component: User }
];

// 组件中获取参数
<script setup>
import { useRoute } from 'vue-router';

const route = useRoute();
const userId = route.params.id;
</script>

2. 查询参数query
如果URL中有查询字符串(如/user?id=123)或路由跳转时写了query【如router.push({path: ‘/user’,query: { id: 123}});】,则可以通过route.query.id获取该参数。

// 路由配置
const routes = [
  { path: '/user', component: User }
];

// 组件中获取参数
<script setup>
import { useRoute } from 'vue-router';

const route = useRoute();
const userId = route.query.id;
</script>

3. 通过 props 传递参数

  • 在路由配置中启用 props,并将 params 作为 props 传递。
// 路由配置
const routes = [
  { path: '/user/:id', component: User, props: true }
];

// 组件中通过 props 获取参数
<script setup>
import { defineProps, onMounted } from 'vue';

const props = defineProps({
  id: {
    type: String,
    required: true
  }
});

onMounted(() => {
  console.log(props.id);
});
</script>
  • 通过 props 传递查询参数。
// 路由配置
const routes = [
  { path: '/user', component: User, props: (route) => ({ id: route.query.id }) }
];

// 组件中通过 props 获取参数
<script setup>
import { defineProps, onMounted } from 'vue';

const props = defineProps({
  id: {
    type: String,
    required: true
  }
});

onMounted(() => {
  console.log(props.id);
});
</script>
风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。