当前位置: 首页 > article >正文

Vue.js 传递路由参数和查询参数

Vue.js 传递路由参数和查询参数

在 Vue.js 开发中,Vue Router 提供了灵活的方式来处理路由参数和查询参数,使得组件能够根据不同的路径或查询条件渲染相应的内容。

路由参数

路由参数(也称为路径参数)是 URL 路径的一部分,用于标识特定的资源或内容。在 Vue Router 中,可以通过在路由路径中使用冒号 : 定义动态路由参数。

定义动态路由

首先,在路由配置中定义带有参数的路径:

import Vue from 'vue';
import VueRouter from 'vue-router';
import User from './components/User.vue';

Vue.use(VueRouter);

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

const router = new VueRouter({
  routes,
});

export default router;

在上述配置中,/user/:id 表示 id 是一个动态参数,可以匹配 /user/1/user/2 等路径。

访问路由参数

在目标组件中,可以通过 this.$route.params 访问路由参数:

<template>
  <div>
    <h2>用户 ID: {{ userId }}</h2>
  </div>
</template>

<script>
export default {
  computed: {
    userId() {
      return this.$route.params.id;
    },
  },
};
</script>

通过上述方式,组件可以根据路由参数渲染相应的内容。

查询参数

查询参数是 URL 中 ? 后面的键值对,用于传递额外的信息。在 Vue Router 中,查询参数不需要在路由配置中声明,可以直接在导航时传递。

传递查询参数

可以通过 router.push 方法传递查询参数:

this.$router.push({ path: '/search', query: { keyword: 'Vue' } });

上述代码会导航到 /search?keyword=Vue

访问查询参数

在目标组件中,可以通过 this.$route.query 访问查询参数:

<template>
  <div>
    <h2>搜索关键词: {{ keyword }}</h2>
  </div>
</template>

<script>
export default {
  computed: {
    keyword() {
      return this.$route.query.keyword;
    },
  },
};
</script>

通过上述方式,组件可以根据查询参数执行相应的逻辑。

总结

  • 路由参数:作为 URL 路径的一部分,需要在路由配置中定义,访问时使用 this.$route.params

  • 查询参数:作为 URL 中 ? 后的键值对,无需在路由配置中定义,访问时使用 this.$route.query

合理使用路由参数和查询参数,可以使 Vue.js 应用的路由设计更加灵活和强大。


http://www.kler.cn/a/519711.html

相关文章:

  • Linux 内核学习(5) --- Linux 内核底半部机制
  • Linux 内核进程调度
  • 【Python】导入类
  • 基于回归分析法的光伏发电系统最大功率计算simulink建模与仿真
  • OLMo:开启AI研究新纪元的开放利器
  • 使用 Tailwind CSS + PostCSS 实现响应式和可定制化的前端设计
  • 传输层协议TCP与UDP:深入解析与对比
  • 「 机器人 」利用冲程对称性调节实现仿生飞行器姿态与方向控制
  • Formality:时序变换(四)(寄存器合并)
  • React将props传递给一个组件
  • 设计模式Python版 抽象工厂模式
  • sqlzoo答案4:SELECT within SELECT Tutorial
  • 【Leetcode刷题记录】15.三数之和
  • 【2024年华为OD机试】(A卷,200分)- 农场施肥 (JavaScriptJava PythonC/C++)
  • 2025年美赛(MCM/ICM)赛题浅析——助攻快速选题
  • 小智 AI 聊天机器人
  • Python读写各类数据文件
  • 学习数据结构(1)算法复杂度
  • JavaScript系列(44)--微服务架构实现详解
  • 【25考研】中科院软件考研复试难度分析!
  • leetcode 1358. 包含所有三种字符的子字符串数目
  • 【PostgreSQL内核学习 —— (WindowAgg(一))】
  • 基于vue框架的的信用社业务管理系统设计与实现4gnx5(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
  • 包安装利用 LNMP 实现 phpMyAdmin 的负载均衡并利用Redis实现会话保持nginx
  • 如何优化企业的CRM流程管理?
  • 【知识图谱(2)】电影知识图谱构建