ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Router传参的几种方式

2022-07-26 01:32:45  阅读:218  来源: 互联网

标签:传参 name route 几种 params User Router id user


一、普通不携带参数

  1. 父组件代码
<!-- app.vue -->

<router-link to="/user">
  1. 路由配置
// router/index.js

{
  path: '/user',
  name: 'User',
  component: User
}
  1. 导航栏显示
http://localhost:8082/#/user

二、携带参数的几种方法

  1. 父组件代码
<!-- app.vue -->

<router-link :to="`/user/${id}`">

<script>
data() {
  return {
    id:123
  }
}
</script>
  1. 路由配置
// router/index.js

{
  path: '/user/:id',
  name: 'User',
  component: User
}
  1. 导航栏显示
http://localhost:8082/#/user/123
  1. 子组件获取
// 通过 $route.params 获取所有传递的参数对象
this.$route.params
// 通过指定key值获取准确的参数
this.$route.params.id

$router.push()

通过点击触发,直接跳转到指定页面

  1. 父组件代码
<!-- app.vue -->

<button @click="goUser(456)">this.$router.push()-传参</button>

<script>
data() {
  methods: {
    goUser(id) {
      this.$router.push({
	// 直接访问地址,类似第一种方式,只是一个是路由组件,一个是点击事件触发
        path: `/user/${id}`
      })
    }
  }
}
</script>
  1. 路由配置
// router/index.js

{
  path: '/user/:id',
  name: 'User',
  component: User,
}
  1. 导航栏显示
http://localhost:8082/#/user/456
  1. 子组件获取
// 通过 $route.params 获取所有传递的参数对象
this.$route.params
// 通过指定key值获取准确的参数
this.$route.params.id

params

params 只能与 name 一起使用

跳转后不会将参数拼接到 url 上,刷新页面后参数会丢失

  1. 父组件代码
<!-- app.vue -->

<button @click="goUser(789)">params-传参</button>

<script>
data() {
  methods: {
    goUser(id) {
      this.$router.push({
	// name 必须与路由的 name 一致
        name: 'User',
        params: {
          id
        }
      })
    }
  }
}
</script>
  1. 路由配置
// router/index.js

{
  path: '/user',
  name: 'User',
  component: User,
}
  1. 导航栏显示
http://localhost:8082/#/user
  1. 子组件获取
// 通过 $route.params 获取所有传递的参数对象
this.$route.params
// 通过指定key值获取准确的参数
this.$route.params.id

query

query 可以和 name 或者 path 一起搭配使用

跳转后在 url 后面拼接参数:?id=abc,非重要数据可以这样传,像密码之类使用 params

  1. 父组件代码
<!-- app.vue -->

<button @click="goUser('abc')">query-传参</button>

<script>
data() {
  methods: {
    goUser(id) {
      this.$router.push({
	// 直接填写 path ,或者使用 name
        // path: '/user',
		name: 'User'
	// 传参使用 query
        query: {
          id
        }
      })
    }
  }
}
</script>
  1. 路由配置
// router/index.js

{
  path: '/user',
  name: 'User',
  component: User,
}
  1. 导航栏显示
http://localhost:8082/#/User?id=abc
  1. 子组件获取
// 通过 $route.query 获取所有传递的参数对象
this.$route.query
// 通过指定key值获取准确的参数
this.$route.query.id

标签:传参,name,route,几种,params,User,Router,id,user
来源: https://www.cnblogs.com/bkzj/p/16479480.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有