Vue路由跳转与接收参数的实现方式

yizhihongxing

Vue路由跳转与接收参数的实现方式可以通过以下步骤完成:

  1. 安装 vue-router 插件

vue-router 是 Vue.js 官方的路由管理插件,需要先安装并在项目中引入。

可以使用 npm 进行安装,命令如下:

npm install vue-router --save
  1. 创建路由对象

在项目中创建一个 router.js 文件,并在该文件中创建一个路由对象,例如:

import Vue from 'vue'
import Router from 'vue-router'
import Home from '@/components/Home'
import Detail from '@/components/Detail'

Vue.use(Router)

export default new Router({
  routes: [
    {
      path: '/',
      name: 'Home',
      component: Home
    },
    {
      path: '/detail/:id',
      name: 'Detail',
      component: Detail
    }
  ]
})

在上面代码中,定义了两个路由,分别是 //detail/:id,分别对应了 HomeDetail 组件。

其中 /:id 表示参数,接收参数的方式下一步进行讲解。

  1. 跳转路由并传递参数

使用 router-link 组件实现路由跳转,并通过 to 属性指定路由路径。

例如,在 Home 组件中,通过 router-link 跳转到 Detail 组件,并传递参数 id

<router-link :to="{name: 'Detail', params: {id: 123}}">详情</router-link>

在上面代码中,使用了对象的方式,其中 name 表示跳转的路由名称,params 表示要携带的参数,传递的参数为 {id: 123}

  1. 接收传递的参数

Detail 组件中,可以通过 $route 对象拿到传递过来的参数。

例如,在 Detail 组件中,可以通过以下方式获取传递的参数:

export default {
  name: 'Detail',
  methods: {
    getParams() {
      const id = this.$route.params.id
      console.log(id) // 输出:123
    }
  }
}

在上面代码中,通过 $route.params.id 获取传递的参数。

示例一:

下面是一个完整的示例,通过列表页跳转到详情页,并传递参数 id

<!-- Home.vue -->
<template>
  <div>
    <ul>
      <li v-for="item in list" :key="item.id">
        <router-link :to="{name: 'Detail', params: {id: item.id}}">{{item.title}}</router-link>
      </li>
    </ul>
  </div>
</template>

<script>
export default {
  name: 'Home',
  data() {
    return {
      list: [
        {id: 1, title: '文章一'},
        {id: 2, title: '文章二'},
        {id: 3, title: '文章三'},
      ]
    }
  }
}
</script>
<!-- Detail.vue -->
<template>
  <div>
    <h2>{{title}}</h2>
    <p>{{content}}</p>
  </div>
</template>

<script>
import axios from 'axios'

export default {
  name: 'Detail',
  data() {
    return {
      title: '',
      content: ''
    }
  },
  methods: {
    getDetail() {
      const id = this.$route.params.id
      axios.get(`/detail?id=${id}`).then(res => {
        this.title = res.data.title
        this.content = res.data.content
      })
    }
  },
  created() {
    this.getDetail()
  }
}
</script>

在上面代码中,通过 $route.params.id 获取传递的参数,并通过 axios 发送请求获取对应的数据,最终渲染在页面上。

示例二:

下面是另一个示例,通过路由参数传递用户名和年龄,展示在用户中心页面:

<!-- App.vue -->
<template>
  <div id="app">
    <router-view></router-view>
  </div>
</template>

<script>
import router from '@/router'

export default {
  name: 'App',
  methods: {
    goToUserCenter() {
      const username = 'Jack'
      const age = 28
      router.push({name: 'UserCenter', params: {username, age}})
    }
  }
}
</script>
<!-- UserCenter.vue -->
<template>
  <div>
    <h2>{{title}}</h2>
    <p>{{content}}</p>
  </div>
</template>

<script>
export default {
  name: 'UserCenter',
  data() {
    return {
      username: '',
      age: ''
    }
  },
  created() {
    this.username = this.$route.params.username
    this.age = this.$route.params.age
  },
  computed: {
    title() {
      return `欢迎你,${this.username},你的年龄是 ${this.age} 岁。`
    },
    content() {
      return '这是你的个人中心页面。'
    }
  }
}
</script>

在上面代码中,通过 router-link 跳转到 UserCenter 组件,并通过 params 传递参数,最终展示在页面中。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Vue路由跳转与接收参数的实现方式 - Python技术站

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

相关文章

  • vue组件实现移动端九宫格转盘抽奖

    实现移动端九宫格转盘抽奖的过程可以分为以下几步: 创建Vue组件:首先需要创建一个Vue组件来实现转盘抽奖功能。通过Vue组件,可以将转盘抽奖功能的代码模块化,并加入响应式处理、生命周期等Vue特性。 实现转盘转动效果:要让九宫格转盘能够转动,需要控制该组件中的转盘图片的旋转角度。可以通过CSS3动画或JavaScript来实现转盘旋转效果。 实现抽奖逻辑:…

    Vue 2023年5月29日
    00
  • vue props传值失败 输出undefined的解决方法

    关于“vue props传值失败 输出undefined的解决方法”的详细讲解可以分为以下几个步骤: 1.检查父组件传递的属性名和子组件接收的属性名是否完全一致 在Vue中,父组件通过v-bind绑定的属性名会作为子组件中由props声明的变量名来接收。因此,如果属性名不一致,子组件接收到的值就是undefined。 示例: 在父组件中,我们声明一个数据属性…

    Vue 2023年5月29日
    00
  • vue项目中定义全局变量、函数的几种方法

    在Vue项目中,有时候需要定义全局变量和函数以便在各个组件中使用,以下是几种定义全局变量、函数的方法: 1. 在main.js文件中定义全局变量和函数 在vue-cli创建的项目中,一般会默认生成一个main.js文件,可以在这个文件中定义全局变量和函数。 例如,我们要定义一个全局变量$api,可以在main.js中添加以下代码: import Vue fr…

    Vue 2023年5月27日
    00
  • vue3如何实现PDF文件在线预览功能

    Vue 3是基于前端开发框架Vue.js的最新版本,其具有更强大的响应式系统和优化后的编译器,使得开发体验更加简单、高效。本文将详细讲解如何使用Vue 3实现PDF文件在线预览功能的完整攻略。 步骤1 安装pdf.js PDF.js是一个用于在Web平台上显示PDF文档的开源项目,它基于HTML5 Canvas技术,可以解析PDF文档并将其转换为可供浏览器渲…

    Vue 2023年5月28日
    00
  • laravel 5.4 + vue + vux + element的环境搭配过程介绍

    下面就是”laravel 5.4 + vue + vux + element的环境搭配过程介绍”。 简介 这里要介绍的是如何在 laravel 5.4 中使用 Vue.js,并配合使用 vux 和 element 框架。Vue.js 是一个轻量级的前端框架,通过数据绑定和组件化的方式,使得前端的开发更加高效和便捷。vux 是一个专门面向移动端 UI 的框架,…

    Vue 2023年5月28日
    00
  • vue3 axios 实现自动化api配置详解

    Vue3 Axios 实现自动化 API 配置详解 背景 在Vue项目中,我们经常需要向后端API接口发起请求来获取数据或者提交表单。Axios是一种流行的基于Promise的HTTP库,它可以帮助我们在Vue中发起请求。 当项目较大时,我们需要管理大量的API请求,每个API都有不同的地址、请求方式、请求参数等。因此,我们需要对Axios进行封装,以便于在…

    Vue 2023年5月28日
    00
  • Vue关于组件化开发知识点详解

    下面是关于Vue的组件化开发的详细攻略。 1. 什么是组件化开发 组件化开发是一种将一个大型项目拆分成多个小的可重用组件的方法。每个组件都封装了自己的数据和方法,可在不同的页面和应用中被重复利用。 Vue.js 是一个专注于数据驱动的渐进式 JavaScript 框架,它通过其丰富的生命周期钩子函数和强大的响应式数据绑定机制,使得组件化开发得以高效实现。 2…

    Vue 2023年5月27日
    00
  • Vue自定义指令的使用详细介绍

    下面是关于 Vue 自定义指令的使用详细介绍及示例,希望对你有所帮助。 什么是 Vue 自定义指令 Vue 自定义指令是一个可以重复使用的指令,可以用于操作 DOM 元素。我们可以使用 Vue 中内置的一些指令,如 v-if、v-show 等等。自定义指令允许我们在 Vue 中增加自定义指令,来满足一些特殊的需求。 Vue 自定义指令的基本生命周期函数 Vu…

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