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

下面是详细的“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.js实现带日期星期的数字时钟功能示例

    接下来我将为您详细介绍“vue.js实现带日期星期的数字时钟功能示例”的完整攻略。 总体思路 本次实现将分为以下几步:1. 引入Vue.js2. 构建Vue实例3. 组件化设计钟表组件4. 实现数字时钟功能5. 实现带日期星期的效果 构建Vue实例 在index.html文件中引入Vue.js的CDN: <script src="https:…

    Vue 2023年5月29日
    00
  • vue源码解析computed多次访问会有死循环原理

    下面是关于“vue源码解析computed多次访问会有死循环原理”的完整攻略。 1. computed的原理 先来简单介绍一下computed的原理。在Vue组件中,computed是指计算属性,是一个基于响应式依赖进行缓存的数据属性,它的值在使用时会自动收集依赖,发现依赖变化时会重新计算,并且将结果缓存起来,直到依赖变化才重新计算。这样就避免了重复计算,提…

    Vue 2023年5月28日
    00
  • js中less常用的方法小结

    JS中Less常用的方法小结 1. Less和CSS变量 我们都知道,CSS中 var() 函数是用来引用自定义变量的。在Less中,我们可以使用和CSS类似的方式来定义和使用变量。下面是Less的变量定义示例: @base-color: #666; body { color: @base-color; background-color: lighten(@…

    Vue 2023年5月28日
    00
  • Vue中定义全局变量与常量的各种方式详解

    下面将对“Vue中定义全局变量与常量的各种方式详解”的完整攻略进行讲解。 定义全局变量 使用Vue.prototype 我们可以使用Vue.prototype来定义全局变量。具体步骤如下: 在Vue实例化之前,通过Vue.prototype添加需要定义的全局变量 javascript Vue.prototype.$myVariable = ‘这是一个全局变量…

    Vue 2023年5月28日
    00
  • spring boot实现图片上传和下载功能

    下面我将针对“spring boot实现图片上传和下载功能”的完整操作过程进行详细讲解,并提供两个示例以供参考。 准备工作 在开始实现图片上传和下载功能之前,我们需要先准备好开发环境和所需要的依赖。具体流程如下: 环境搭建 JDK 1.8及以上版本 Maven 3.2及以上版本 IDE开发工具(如Eclipse、IntelliJ IDEA等) 需要依赖 在M…

    Vue 2023年5月28日
    00
  • vue实现一个炫酷的日历组件

    下面是详细的攻略,首先需要明确的是,实现一个炫酷的日历组件需要涉及到许多知识点,包括 Vue 组件化、CSS 动画、日期计算等等。因此,分别从这些方面来介绍实现过程。 1. Vue 组件化 首先,我们需要将日历组件拆分成多个组件,以便于管理和复用。 组件分为年、月、日期三个层级。 Year.vue: <template> <div clas…

    Vue 2023年5月28日
    00
  • 解决vue 格式化银行卡(信用卡)每4位一个符号隔断的问题

    要解决vue格式化银行卡(信用卡)每4位一个符号隔断的问题,可以遵循以下的攻略: 1. 导入格式化库 可以使用一些格式化库去帮助你实现格式化功能。在Vue.js中,我们可以使用vue-numeric-input这一库,来实现银行卡格式化功能。 导入vue-numeric-input库: npm install vue-numeric-input –save…

    Vue 2023年5月27日
    00
  • Vue2.x与Vue3.x中路由钩子的区别详解

    来详细讲解“Vue2.x与Vue3.x中路由钩子的区别详解”。 Vue2.x与Vue3.x中路由钩子的区别详解 路由钩子的概念 在Vue中,路由是一个非常重要的概念,它用来管理应用程序中的导航。路由钩子则是在路由发生改变的时候,触发的一些函数,用于控制路由跳转的行为以及实现一些特殊的业务逻辑。 Vue2.x中路由钩子 在Vue2.x中,路由钩子分为三种类型:…

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