当前位置:首页 > 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中实现点击排序功能,可以通过以下几种方式完成: 使用计算属性结合排序方法 定义一个响应式数据存储排序状态,通过计算属性动态返回排序后的数组。点击事件切换排序状态。 d…

vue实现后退

vue实现后退

Vue 实现后退功能的方法 在 Vue 中实现后退功能通常可以通过以下几种方式完成,具体取决于应用场景和需求。 使用 window.history API 通过原生 JavaScript 的 win…

jq 实现 vue

jq 实现 vue

jq 实现 Vue 的核心功能 jq 是一个轻量级的 JavaScript 库,主要用于 DOM 操作和事件处理。虽然它不能完全替代 Vue,但可以通过一些技巧模拟 Vue 的核心功能,如数据绑定、事…

vue分类实现

vue分类实现

Vue分类实现方法 在Vue中实现分类功能通常涉及数据分组、动态渲染和交互逻辑。以下是几种常见的实现方式: 基于计算属性的分类 通过计算属性对原始数据进行分组处理,适合静态或少量数据分类: com…

vue首页实现

vue首页实现

实现Vue首页的基本步骤 创建一个Vue首页通常涉及项目初始化、页面结构设计、路由配置和组件开发。以下是具体实现方法: 初始化Vue项目 使用Vue CLI或Vite快速搭建项目结构: npm i…

vue实现Pop

vue实现Pop

Vue 实现 Popover 组件的方法 使用 Vue 内置指令 v-show/v-if 和事件监听 通过 Vue 的指令和事件绑定实现基础的 Popover 功能。定义一个布尔值控制 Popover…