当前位置:首页 > VUE

vue实现路由传参

2026-01-21 08:26:22VUE

vue-router 的传参方式

query 传参
通过 URL 的查询参数传递数据,适合非敏感信息。参数会显示在地址栏中,刷新页面后数据不会丢失。

// 跳转时传递参数
this.$router.push({
  path: '/target',
  query: { id: 123, name: 'foo' }
});

// 目标组件接收参数
this.$route.query.id; // 获取参数

params 传参
通过路由的 params 属性传递数据,需在路由配置中定义参数名。刷新页面后数据会丢失,除非搭配动态路由。

// 路由配置
{
  path: '/target/:id',
  name: 'Target',
  component: TargetComponent
}

// 跳转时传递参数
this.$router.push({
  name: 'Target',
  params: { id: 123 }
});

// 目标组件接收参数
this.$route.params.id; // 获取参数

props 解耦
通过路由配置的 props 属性将参数直接注入组件,避免在组件内直接访问 $route,提高可复用性。

// 路由配置
{
  path: '/target/:id',
  component: TargetComponent,
  props: true // 将 params 作为 props 传递
}

// 或通过函数返回自定义 props
props: (route) => ({ id: route.query.id })

// 组件内通过 props 接收
props: ['id'],

动态路由传参
适用于需要保持参数状态的场景(如页面刷新后参数仍存在)。需在路由路径中定义参数占位符。

// 路由配置
{
  path: '/user/:userId/post/:postId',
  component: UserPost
}

// 跳转时传递参数
this.$router.push('/user/123/post/456');

// 组件内通过 $route.params 获取
const { userId, postId } = this.$route.params;

注意事项

  • query 和 params 区别query 参数显示在 URL 中,适合公开数据;params 更简洁,但需预定义路由。
  • props 推荐:对于复杂组件,优先使用 props 传参以降低耦合。
  • 动态路由:若需持久化参数,选择动态路由搭配 params

vue实现路由传参

标签: 路由vue
分享给朋友:

相关文章

vue实现公告

vue实现公告

Vue 实现公告功能的方法 公告功能通常需要实现滚动展示、自动切换或固定显示的效果。以下是几种常见的实现方式: 使用 marquee 标签实现滚动公告 <template> <…

vue实现删除

vue实现删除

Vue 实现删除功能的方法 在 Vue 中实现删除功能通常涉及以下几个步骤: 数据绑定与列表渲染 使用 v-for 指令渲染列表数据,并为每个项绑定唯一标识符(如 id)。例如: <ul…

vue实现动态

vue实现动态

Vue 实现动态路由的方法 在 Vue 中实现动态路由通常涉及以下几个关键步骤: 使用 Vue Router 的动态路由匹配 通过 Vue Router 的 :param 语法可以实现动态路由匹配…

vue筛选实现

vue筛选实现

Vue 筛选实现方法 使用计算属性实现筛选 计算属性是 Vue 中实现数据筛选的常用方式。通过定义一个计算属性,可以根据输入的条件动态过滤数据。 <template> <div…

vue 实现回复

vue 实现回复

Vue 实现回复功能 在 Vue 中实现回复功能通常涉及表单提交、数据绑定和列表渲染。以下是实现步骤和代码示例: 数据绑定与表单 <template> <div>…

vue实现toggle

vue实现toggle

Vue 实现 Toggle 功能 在 Vue 中实现 toggle(切换)功能可以通过多种方式完成,以下是几种常见的方法: 使用 v-model 和 v-on 通过 v-model 绑定数据,结合…