VUE2的路由传参方式

  • 方式一: 利用 ? 传递参数,保存在 this.$route.query 属性里

  • 方式二:利用  /xx/xx  简化前提是需要到 路由中进行参数配置,保存在 this.$route.params 属性里
  • 方式三:让组件利用 props属性 自动解构出路由参数

代码展示:

app.vue

<template>
  <div>
    <!-- 路由传参 -->
    <!-- 传参写法1: 借鉴原生的URL参数格式 利用 ? 传递参数 -->
    <router-link to="/show?skill=卖萌&age=19">show1</router-link>
    <!-- 写法2: 简化前提是 需要到路由中进行参数配置 -->
    <router-link to="/show/卖萌/19">show2</router-link>
    <router-link to="/show">show3</router-link>
    <router-view />
    <hr />
    <hello-world />
  </div>
</template>

<script>
export default {
}
</script>

<style lang="scss" scoped></style>

show.vue

<template>
  <div>
    <h1>我是步步, 我会{{ $route.query.skill }}</h1>
    <h2>今年{{ $route.query.age }}</h2>
    <hr />
    <div>{{ $route.params.skill }}, {{ $route.params.age }}</div>
    <!-- 当路由中 开启 props 解构功能后 -->
    <div>{{ skill }}, {{ age }}</div>
  </div>
</template>

<script>
export default {
  // 用于自定义属性, 接受传递的参数
  // 如果路由开启了 属性解构模式, 则props同时具备了自动解构路由参数的功能
  props: ['skill', 'age'],
  mounted() {
    console.log(this) //找其中的 $route 属性
    // ?方式传递的参数, 保存在: this.$route.query 属性里
    // 如果是 /show/xx/xx 方式传递的参数
    // 则存储在 this.$route.params 里
  },
}
</script>

<style lang="scss" scoped></style>

路由index.js

import Vue from 'vue'
import VueRouter from 'vue-router'
Vue.use(VueRouter)

// routes: 用于存储 路径 和 组件间的对应关系
const routes = [
  {
    // localhost:8080/show
    // 用 : 作为标识, 来规定参数的名字
    path: '/show/:skill/:age',
    // 让组件利用 props属性, 自动解构出路由参数
    props: true, //true代表开启此功能
    name: 'show',
    component: () => import('../views/Show.vue'),
  },

  {
    path: '/',
    name: 'Home',
    component: () => import('../views/Home.vue'),
  },
]

const router = new VueRouter({
  mode: 'history',
  base: process.env.BASE_URL,
  routes,
})

export default router

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Vue 2中,有几种传递路由参数的方式。以下是其中一些常见的方式: 1. 路径参数(Path Parameters):通过在路由路径中添加占位符来传递参数。在定义路由时,可以使用`:`来指定参数名称,然后在实际跳转时,将对应的值填入路径中。例如: ```javascript // 路由定义 { path: '/user/:id', component: User, } // 实际跳转 router.push('/user/123'); ``` 在上述例子中,`:id`是一个占位符,代表要传递的参数名称,可以在`User`组件中通过`$route.params.id`来获取传递的值。 2. 查询参数(Query Parameters):通过在URL中添加查询参数来传递数据。可以使用`query`方法或者`router-link`组件的`to`属性来生成包含查询参数的URL。例如: ```javascript // query方法 router.push({ path: '/user', query: { id: 123 } }); // router-link组件 <router-link :to="{ path: '/user', query: { id: 123 } }">User</router-link> ``` 在上述例子中,传递的参数名称是`id`,可以在`User`组件中通过`$route.query.id`来获取传递的值。 3. 命名路由(Named Routes):给路由命名可以简化路由跳转,并且可以带有参数。首先,在定义路由时,给路由对象添加一个`name`属性。然后,在实际跳转时,使用`name`属性来指定要跳转的路由,并传递参数。例如: ```javascript // 路由定义 { path: '/user/:id', name: 'user', component: User, } // 实际跳转 router.push({ name: 'user', params: { id: 123 } }); ``` 在上述例子中,通过给路由定义一个`name`属性,可以使用`name`属性来指定要跳转的路由,并通过`params`属性传递参数。在`User`组件中,可以通过`$route.params.id`来获取传递的值。 这些是Vue 2中常用的路由传参方式,根据具体的需求,选择适合的方式来传递参数。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

记忆怪 bug

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值