vue路由传参的基本实现方式小结【三种方式】

yizhihongxing

下面是详细的“vue路由传参的基本实现方式小结【三种方式】”攻略:

一、query方式

  1. 在router-link中添加to属性,例如:
<router-link :to="{path: 'detail', query: {id: 1, name: 'foo'}}"> 去往详情 </router-link>

这里在to属性中传递了一个对象,path表示跳转到的目标路由,query表示需要传递的参数。

  1. 在目标组件中,通过this.$route.query获取参数,例如:
<script>
export default {
  name: 'Detail',
  data () {
    return {
      id: null,
      name: null
    }
  },
  methods: {},
  created () {
    this.id = this.$route.query.id
    this.name = this.$route.query.name
  }
}
</script>

二、dynamic路由方式

  1. 在router中定义动态路由
{
  path: '/detail/:id/:name',
  name: 'Detail',
  component: Detail
}

动态路由以":"开头,表示该部分为可变参数。

  1. 在router-link中添加to属性,传递参数,例如:
<router-link :to="'/detail/' + id + '/' + name"> 去往详情 </router-link>
  1. 在目标组件中,通过this.$route.params获取参数,例如:
<script>
export default {
  name: 'Detail',
  data () {
    return {
      id: null,
      name: null
    }
  },
  methods: {},
  created () {
    this.id = this.$route.params.id
    this.name = this.$route.params.name
  }
}
</script>

三、state方式

  1. 在router-link中添加to属性,并在query中传递参数,例如:
<router-link :to="{path: '/detail', query: {id: 1, name: 'foo'}}" @click.native="goDetail"> 去往详情 </router-link>
  1. 在goDetail方法中,调用this.$router.push()跳转路由,并传递state参数,例如:
<script>
export default {
  name: 'Home',
  data () {
    return {}
  },
  methods: {
    goDetail () {
      this.$router.push({
        path: '/detail',
        query: {id: 1, name: 'foo'},
        state: {foo: 'bar'}
      })
    }
  }
}
</script>
  1. 在目标组件中,通过this.$route.params获取参数,例如:
<script>
export default {
  name: 'Detail',
  data () {
    return {
      id: null,
      name: null,
      foo: null
    }
  },
  methods: {},
  created () {
    this.id = this.$route.query.id
    this.name = this.$route.query.name
    this.foo = this.$route.params.foo
  }
}
</script>

以上就是“vue路由传参的基本实现方式小结【三种方式】” 的完整攻略,希望对你有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:vue路由传参的基本实现方式小结【三种方式】 - Python技术站

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

相关文章

  • 浅谈vue中$bus的使用和涉及到的问题

    本文将为大家详细讲解“浅谈vue中$bus的使用和涉及到的问题”。 1. 什么是$bus 在 Vue.js 的事件机制中,存在一种很特殊的事件派发 / 监听模式,即使用 $on 和 $emit 方法的全局事件总线。这种模式是基于一个空的 Vue 实例作为中央事件总线的模式。 这种空的 Vue 实例被称为 $bus,$bus 实例可以被用来作为组件间传输数据的…

    Vue 2023年5月29日
    00
  • Vue Cli3 创建项目的方法步骤

    Vue Cli3 是 Vue.js 的一个脚手架工具,提供了快速创建 Vue.js 项目的能力。下面将详细讲解 Vue Cli3 创建项目的方法步骤。 第一步:安装 Node.js Vue Cli3 需要依赖 Node.js 环境,所以必须先安装 Node.js。在终端中输入以下命令进行安装: $ curl -o- https://raw.githubuse…

    Vue 2023年5月28日
    00
  • 详解vue 路由跳转四种方式 (带参数)

    详解vue 路由跳转四种方式 (带参数) 在vue中,路由跳转是非常常见的操作,我们可以使用vue-router提供的四种方式进行路由跳转。本文将详细讲解这四种方式,并提供带参数的示例。 1. router.push 使用router.push可以向路由添加一个新的历史记录,这意味着用户可以使用浏览器的后退按钮回到之前的页面。这种方式常用于页面跳转或者在当前…

    Vue 2023年5月28日
    00
  • vue3.2 reactive函数问题小结

    Vue3.2 reactive函数问题小结 问题描述 在Vue3中,reactive函数用于将一个对象转化为响应式数据。但是在使用reactive函数的时候,有一些需要注意的问题,否则会出现数据无法响应式更新的问题。 解决方案 1. 对象的属性更新问题 当使用reactive函数对一个对象进行响应式化之后,该对象的所有属性都将变为响应式的。但是如果该对象的属…

    Vue 2023年5月28日
    00
  • vue打包后生成一个配置文件可以修改IP

    要修改Vue打包后生成的IP地址,需要进行以下步骤: 找到Vue项目的根目录下的config文件夹,其中包含了打包的配置文件,比如’prod.env.js’和’index.js’。 在’prod.env.js’中添加以下代码:API_ROOT: ‘”http://your_server_ip_address/api”‘,其中your_server_ip_ad…

    Vue 2023年5月28日
    00
  • vue中对象数组去重的实现

    下面是针对“Vue中对象数组去重的实现”的完整攻略。 1. 问题背景 在Vue开发中,我们经常需要对一个对象数组进行去重操作。如果数组中的对象没有特定的属性值用于唯一性的判断,这个问题就会变得更加困难。在这种情况下,我们通常需要使用一些技巧和方法来精确地进行去重操作。 2. 实现方式 2.1 使用Set 在ECMAScript 2015(ES6)中,新增了一…

    Vue 2023年5月28日
    00
  • 浅析Vue 防抖与节流的使用

    当我们在使用 Vue.js 开发 Web 应用时,我们经常会碰到需要处理频繁触发的事件或异步请求的需求,例如输入框连续输入、窗口 resize 等,这些事件的频繁触发可能会导致应用程序的性能问题。在这种情况下,我们可以使用防抖和节流来限制这些事件的触发次数,以优化应用程序的性能。 什么是防抖和节流 防抖和节流都是关于限制事件触发次数的技术。 防抖(Debou…

    Vue 2023年5月29日
    00
  • vue2单元测试环境搭建

    Vue2单元测试环境搭建 单元测试是为了保证代码质量而必要的步骤。Vue2的单元测试环境搭建涉及的技术包括mocha、chai、sinon等。本文将详细讲述Vue2单元测试环境搭建的步骤和示例。 步骤 安装依赖 首先需要安装mocha、chai、sinon和vue-test-utils等依赖。 npm install –save-dev mocha cha…

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