vue3在路由里取参数几种常见的方法

 更新时间:2025年06月05日 10:49:50   作者:用心去追梦  
这篇文章主要给大家介绍了关于vue3在路由里取参数几种常见的方法,可使用$route(OptionsAPI)、useRoute(CompositionAPI)及watch监听,动态参数通过params获取,查询参数用query提取,需要的朋友可以参考下

在 Vue 3 中,使用 Vue Router 获取路由参数有多种方式。以下是几种常见的方法:

1. 通过 this.$route 获取(Options API)

如果你使用的是 Options API,可以通过 this.$route 访问路由对象,并从中提取参数。

export default {
  mounted() {
    // 获取动态路由参数
    const id = this.$route.params.id;
    console.log('Route Param:', id);

    // 获取查询参数
    const queryParam = this.$route.query.someQueryParam;
    console.log('Query Param:', queryParam);
  }
};

2. 通过 useRoute 获取(Composition API)

在 Composition API 中,可以使用 useRoute 钩子来获取路由信息。

import { useRoute } from 'vue-router';

export default {
  setup() {
    const route = useRoute();

    // 获取动态路由参数
    const id = route.params.id;
    console.log('Route Param:', id);

    // 获取查询参数
    const queryParam = route.query.someQueryParam;
    console.log('Query Param:', queryParam);

    return { id, queryParam };
  }
};

3. 监听参数变化

如果路由参数可能会发生变化(例如用户导航到同一个路由但参数不同),你需要监听参数的变化。

使用 watch

import { useRoute, watch } from 'vue-router';
import { ref } from 'vue';

export default {
  setup() {
    const route = useRoute();
    const id = ref(route.params.id);

    // 监听路由参数变化
    watch(
      () => route.params.id,
      (newId) => {
        id.value = newId;
        console.log('Updated Route Param:', newId);
      }
    );

    return { id };
  }
};

4. 动态路由参数示例

假设你的路由配置如下:

const routes = [
  {
    path: '/user/:id',
    component: UserComponent
  }
];
  • 动态参数 id 可以通过 route.params.id 获取。
  • 查询参数(如 /user/123?name=John)可以通过 route.query.name 获取。

5. 完整示例

以下是一个完整的示例,展示如何在组件中获取和监听路由参数:

<template>
  <div>
    <p>User ID: {{ id }}</p>
    <p>Query Param: {{ queryParam }}</p>
  </div>
</template>

<script>
import { useRoute, watch } from 'vue-router';
import { ref } from 'vue';

export default {
  setup() {
    const route = useRoute();
    const id = ref(route.params.id);
    const queryParam = ref(route.query.name);

    // 监听路由参数变化
    watch(
      () => route.params.id,
      (newId) => {
        id.value = newId;
      }
    );

    // 监听查询参数变化
    watch(
      () => route.query.name,
      (newName) => {
        queryParam.value = newName;
      }
    );

    return { id, queryParam };
  }
};
</script>

注意事项

  • 动态路由参数 vs 查询参数

    • 动态路由参数:定义在路径中的参数(如 /user/:id)。
    • 查询参数:URL 中的查询字符串(如 /user?id=123&name=John)。
  • 参数变化时重新加载数据
    如果路由参数发生变化,但组件没有重新加载(因为复用了相同的组件实例),需要手动监听参数变化并更新数据。

希望这些内容能帮助你顺利在 Vue 3 中获取路由参数!

总结

到此这篇关于vue3在路由里取参数几种常见的方法的文章就介绍到这了,更多相关vue3路由取参数内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • vue.js中修饰符.stop的用法解析

    vue.js中修饰符.stop的用法解析

    这篇文章主要介绍了vue.js中修饰符.stop的用法解析,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-03-03
  • Vue中使用flv.js播放视频的示例详解

    Vue中使用flv.js播放视频的示例详解

    这篇文章主要为大家详细介绍了如何在Vue项目中使用flv.js播放视频,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-04-04
  • vue项目打包后请求地址错误/打包后跨域操作

    vue项目打包后请求地址错误/打包后跨域操作

    这篇文章主要介绍了vue项目打包后请求地址错误/打包后跨域操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-11-11
  • vue2之响应式双向绑定,在对象或数组新增属性页面无响应的情况

    vue2之响应式双向绑定,在对象或数组新增属性页面无响应的情况

    这篇文章主要介绍了vue2之响应式双向绑定,在对象或数组新增属性页面无响应的情况及解决,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-04-04
  • 简单聊一聊axios配置请求头content-type

    简单聊一聊axios配置请求头content-type

    最近在工作中碰到一个问题,后端提供的get请求的接口需要在request header设置,下面这篇文章主要给大家介绍了关于axios配置请求头content-type的相关资料,需要的朋友可以参考下
    2022-04-04
  • vue使用v-if v-show页面闪烁,div闪现的解决方法

    vue使用v-if v-show页面闪烁,div闪现的解决方法

    在页面层次结构,数据较多的时候,用v-if或者v-show就会出现div闪现,或者部分闪烁的结果。怎么处理这样的问题呢,下面小编给大家带来了vue使用v-if v-show页面闪烁,div闪现的解决方法,一起看看吧
    2018-10-10
  • vue实现列表无缝滚动效果

    vue实现列表无缝滚动效果

    这篇文章主要为大家详细介绍了vue实现列表无缝滚动效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-04-04
  • vue利用vant组件实现轮播图效果

    vue利用vant组件实现轮播图效果

    vant组件适用于移动端项目,目前项目开源,是市面上做的比较好的开源项目,功能比较强大,本文小编就来为大家介绍一下如何利用vant实现轮播图效果吧
    2023-10-10
  • vue使用 vxe-table实现跨表拖拽多表联动互相拖拽数据功能

    vue使用 vxe-table实现跨表拖拽多表联动互相拖拽数据功能

    使用vxe-table实现跨表拖拽需启用row-drag-config.isCrossTableDrag,并通过row-config.keyField指定唯一主键字段,确保多表格间数据联动时主键不重复,实现行级数据在不同表格间的拖拽交互,感兴趣的朋友跟随小编一起看看吧
    2025-08-08
  • vue点击input弹出带搜索键盘并监听该元素的方法

    vue点击input弹出带搜索键盘并监听该元素的方法

    今天小编就为大家分享一篇vue点击input弹出带搜索键盘并监听该元素的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-08-08

最新评论