当前位置:首页 > VUE

vue实现路由传参

2026-01-21 08:26:22VUE

vue-router 的传参方式

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

vue实现路由传参

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

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

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

vue实现路由传参

// 路由配置
{
  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 中实现管道(Pipe)功能 在 Vue 中可以通过过滤器(Filters)或计算属性(Computed Properties)实现类似管道的功能,将数据经过多个处理步骤后输出。 使用过滤器(…

vue单选实现

vue单选实现

Vue 单选实现 在 Vue 中实现单选功能可以通过多种方式完成,以下是几种常见的方法: 使用 v-model 绑定单选按钮 通过 v-model 绑定一个变量,可以实现单选效果。当用户选择不同的选…

vue实现ppt

vue实现ppt

Vue 实现 PPT 的功能 Vue 可以结合第三方库或自定义组件实现类似 PPT 的演示效果。以下是几种常见的方法: 使用第三方库 reveal.js reveal.js 是一个流行的演示框架,支…

vue 实现$(id)

vue 实现$(id)

在 Vue 中实现类似 jQuery 的 $(id) 功能,可以通过以下几种方式操作 DOM 元素: 使用 ref 属性 Vue 推荐使用 ref 属性来直接访问 DOM 元素或组件实例。在模板中为…

vue实现反转

vue实现反转

实现数组反转 在Vue中反转数组可以通过多种方式实现,以下是几种常见方法: 使用JavaScript原生reverse方法 // 在methods中定义方法 methods: { revers…

vue下载实现

vue下载实现

Vue 下载实现方法 在 Vue 项目中实现文件下载功能可以通过多种方式完成,以下是几种常见的方法: 使用 <a> 标签实现下载 通过动态创建 <a> 标签并设置 href…