vue-router传参的四种方式超详细讲解

下面是“vue-router传参的四种方式超详细讲解”的完整攻略。

一、路径参数

路径参数是指在路由路径中使用“:xxx”的方式来表示一个参数,该参数为动态的,可以根据需要传入不同的值。使用路径参数可以方便地对同一组件进行不同样式或页面展示的切换,比如展示一组商品列表时选择不同的分类。

在定义路由时,只需将参数用“:”包围即可,如下所示:

{
    path: '/user/:id',
    component: User
}

这里的“:id”就是一个路径参数,可以使用$route.params.id来读取传入的参数值。

使用路径参数的示例代码如下:

<template>
  <div>
    <h2>{{ name }}</h2>
    <p>我的ID是{{ $route.params.id }}</p>
  </div>
</template>

<script>
export default {
  data() {
    return {
      name: 'MyPage',
    };
  },
};
</script>

二、查询参数

查询参数是指在路由路径中使用“?xxx=xxx”的方式来表示一个参数,该参数为静态的,传入的值为固定的。查询参数的使用场景比路径参数更广泛,可以用于传递分页、排序、过滤等的参数。

查询参数在定义路由时可以不写,在具体使用时拼接在url后面即可,如下所示:

{
    path: '/user',
    component: User
}

读取查询参数值时可以使用$route.query.xxx来获取。

使用查询参数的示例代码如下:

<template>
  <div>
    <h2>{{ name }}</h2>
    <p>我的name是{{ $route.query.name }}</p>
  </div>
</template>

<script>
export default {
  data() {
    return {
      name: 'MyPage',
    };
  },
};
</script>

三、命名路由

命名路由是指在定义路由时,给路由起一个名称,然后在跳转时通过名称来指定跳转到哪个路由。命名路由的好处在于代码中不用写具体的路由路径,只需要使用名称来进行跳转就可以了。

在定义路由时可以使用“name”字段进行命名:

{
    path: '/user/:id',
    name: 'user',
    component: User
},
{
    path: '/post/:id',
    name: 'post',
    component: Post
}

跳转时可以使用$router.push({name: 'user', params: {id: 123}})的方式进行跳转。

使用命名路由的示例代码如下:

<template>
  <div>
    <h2>{{ name }}</h2>
    <p>我的ID是{{ $route.params.id }}</p>
    <button @click="jumpTo(567)">跳转到id为567的用户</button>
  </div>
</template>

<script>
export default {
  data() {
    return {
      name: 'MyPage',
    };
  },
  methods: {
    jumpTo(id) {
      this.$router.push({name: 'user', params: {id: id}});
    }
  }
};
</script>

四、props

props是指将参数作为组件的属性传入,这种方式可以实现更复杂的参数传递,可以将传入的参数进行处理,生成自己需要的数据结构。

在定义路由时需要设置props为true或者传入一个对象,对象中的属性就是组件的props。

{
    path: '/user/:id',
    component: User,
    props: true
}

在组件中需要设置props,才能使用传入的数据。

使用props的示例代码如下:

// 路由设置
{
    path: '/user/:id',
    component: User,
    props: route => ({ id: route.params.id })
}

// 组件代码
<template>
  <div>
    <h2>{{ name }}</h2>
    <p>我的ID是{{ id }}</p>
  </div>
</template>

<script>
export default {
  props: ['id'],
  data() {
    return {
      name: 'MyPage',
    };
  },
};
</script>

以上就是“vue-router传参的四种方式超详细讲解”的攻略。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:vue-router传参的四种方式超详细讲解 - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • 一篇文章让你看懂封装Axios

    我来为你讲解。 一篇文章让你看懂封装 Axios – 完整攻略 前言 Axios 是一个基于 promise 的 HTTP 请求库,可以用于浏览器以及 Node.js 环境中。由于 Axios 功能强大,使用简单便捷,因此被广泛用作前后端交互的请求库。但是,如果每个请求都是单独的一个函数去处理的,那么代码会变得很冗长,不易维护。因此我们需要封装 Axios。…

    Vue 2023年5月28日
    00
  • vue3的介绍和两种创建方式详解(cli和vite)

    一、Vue3的介绍 Vue.js是一个前端开发中常用的JavaScript框架之一,它通过可重用的组件帮助开发者构建用户界面。Vue3是Vue.js的最新版本,相较于Vue2来说,Vue3在性能、扩展性等方面有了大幅提升。与之前的版本不同,Vue3框架底层采用了革新性的视图层渲染方式,能够更好地实现优化和性能提升。 二、两种创建Vue3应用的方式(cli和v…

    Vue 2023年5月27日
    00
  • Vue的watch和computed方法的使用及区别介绍

    Vue中的watch和computed都是用来监听数据变化的方法,但在使用时有些差别。下面将对Vue的watch和computed进行详细讲解,并给出两个示例。 Watch Watch的用法 watch可以监听数据的变化,并进行相应的操作。它可以监听一个或多个数据的变化,当数据发生变化时,会执行相应的回调函数。 watch: { username(newVa…

    Vue 2023年5月28日
    00
  • vue实现时间倒计时功能

    以下是“vue实现时间倒计时功能”的完整攻略,希望能对您有所帮助。 基本思路 Vue 实现时间倒计时功能的基本思路是:获取倒计时的起始时间和结束时间,然后通过 setInterval 函数计算时间差并更新视图上的倒计时剩余时间。 具体步骤 1.在Vue组件中定义起始时间和结束时间。 data() { return { startTime: new Date(…

    Vue 2023年5月28日
    00
  • Vue如何监测数组类型数据发生改变的(推荐)

    Vue.js框架通过响应式系统来实现数据的自动更新,当数据发生改变时,Vue.js自动更新相关的视图。但是,Vue.js对于数组类型数据的处理比较特殊,当你通过索引改变数组中的某一个值时,Vue.js并不会检测到数组的变化。这是由于JavaScript的限制造成的。 而在Vue.js2.0版本之后新增了一个“响应式API”,即Vue.set或this.$se…

    Vue 2023年5月28日
    00
  • 浅谈vue3中effect与computed的亲密关系

    浅谈vue3中effect与computed的亲密关系 什么是effect和computed 在vue3中,effect和computed是两种常用的API。effect是用来观察响应式状态的变化,而computed是用来派生一个新的响应式状态,根据已有的响应式状态计算出新的响应式状态的值。 effect 下面是一个简单的示例,演示了如何通过effect去观…

    Vue 2023年5月28日
    00
  • vue组件生命周期钩子使用示例详解

    Vue组件生命周期钩子使用示例详解 在Vue组件的生命周期中,每个实例会从创建、挂载、更新、销毁四个不同的阶段。在这些不同的阶段中,我们可以通过使用生命周期钩子函数来控制组件的行为。本文将详细讲解Vue组件生命周期钩子函数的使用方法,并通过示例代码介绍其具体应用。 Vue组件生命周期钩子函数 Vue组件生命周期可以分为8个阶段,每个阶段都有对应的生命周期钩子…

    Vue 2023年5月27日
    00
  • Vue获取页面元素的相对位置的方法示例

    下面是详细讲解“Vue获取页面元素的相对位置的方法示例”的攻略: 1. 介绍 在前端开发中,有时需要获取页面元素相对于整个页面的位置坐标,以便实现一些操作和效果。本文将介绍在Vue中获取页面元素相对位置的方法及其示例。 2. 方法 在Vue中,可以通过 ref 属性来引用页面元素,并通过 this.$refs 获取对其的引用。获取到元素后,可以使用 getB…

    Vue 2023年5月29日
    00
合作推广
合作推广
分享本页
返回顶部