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

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

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

路由参数

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

定义动态路由

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

javascript 复制代码
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 访问路由参数:

vue 复制代码
<template>
  <div>
    <h2>用户 ID: {{ userId }}</h2>
  </div>
</template>

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

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

查询参数

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

传递查询参数

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

javascript 复制代码
this.$router.push({ path: '/search', query: { keyword: 'Vue' } });

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

访问查询参数

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

vue 复制代码
<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 应用的路由设计更加灵活和强大。

相关推荐
福兮说4 小时前
设计稿是 #4A7C6F,页面量出来是 #4B7C6F:HEX、HSL、透明度、canvas 来回转的七个坑
前端·javascript·css·canvas
郑州光合科技余经理5 小时前
海外版外卖加盟:总站与分站配送规则怎么分开管
java·开发语言·前端·后端·uni-app·php·ai编程
专业程序开发源5 小时前
springboot简历管理系统81389-计算机课程设计、毕业设计
java·vue.js·spring boot·后端·spring·php·课程设计
专业程序开发源5 小时前
springboot社区养老系统44071-计算机课程设计、毕业设计
vue.js·spring boot·后端·python·django·php·课程设计
小呆呆6665 小时前
副业搞起来,小说,漫画,漫剧的成本优化思路
前端·后端·面试
凤城老人6 小时前
从 PyQt6 到 Electron:给 Edge TTS 做一个“多角色配音机“的踩坑手记
javascript·typescript·electron
Dovis(誓平步青云)6 小时前
浇水提醒刚弹出又消失,植物状态别只存一个百分比
开发语言·前端·javascript·pdf·ecmascript·电脑
码艺-Alimjan6 小时前
Vben Admin 新增维吾尔语 Vben-Modal的关键坑之一
前端·javascript·vue.js
可乐鸡翅yeah_7 小时前
hls.js 手动自定义 http 请求 loader,修改请求头实战
开发语言·前端·javascript·网络协议·http·ecmascript·m3u8在线
IT_陈寒7 小时前
Vite静态资源导入这个坑我帮你们踩过了
前端·人工智能·后端