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写一个日历

    下面是用Vue写一个日历的完整攻略: 步骤一:创建Vue项目 首先需要用Vue CLI创建一个Vue项目。打开终端,执行以下命令: vue create vue-calendar 这个命令会创建一个名为vue-calendar的Vue项目,并且自动安装好了所需的依赖。 步骤二:安装日历组件库 为了快速开发日历组件,我们可以使用已有的日历组件库。这里我们选择v…

    Vue 2023年5月29日
    00
  • Vue3中echarts无法缩放的问题及解决方案

    首先我们需要知道的是,Vue3中使用echarts存在一个无法缩放的问题。这是因为Vue3在新版中将zoom插件从vue-echarts移除了,所以默认情况下是无法使用缩放功能的。 不过,我们可以通过以下步骤解决这个问题: 步骤一:安装vue-echarts和echarts 在Vue3项目中,我们需要先安装vue-echarts和echarts两个依赖。 n…

    Vue 2023年5月28日
    00
  • vue 如何将二维数组转化为一维数组

    将二维数组转化为一维数组可以使用 Javascript 的数组方法 flat()。而在 Vue 中,可以使用计算属性来获取转换后的一维数组。 计算属性是一个用来计算 Vue 实例数据的属性,可以基于其它数据进行计算得出。在 Vue 实例中使用计算属性时,只要该计算属性所依赖的数据发生了变化,该计算属性就会重新计算。因此,我们可以使用计算属性来获取每次更新数组…

    Vue 2023年5月28日
    00
  • VUE3+TS递归组件实现TreeList设计实例详解

    让我详细讲解一下“VUE3+TS递归组件实现TreeList设计实例详解”的完整攻略。 1. TreeList设计概述 TreeList 是一种常见的树状结构列表,它通常用于展示带有层级关系的数据,比如公司部门结构。本文将详细介绍如何使用 VUE3 和 TypeScript 实现一个高效的递归组件,来实现 TreeList 设计。 2. 实现步骤 2.1 V…

    Vue 2023年5月29日
    00
  • 解决vue3项目打包发布到服务器后访问页面显示空白问题

    为解决vue3项目打包发布到服务器后访问页面显示空白问题,可以采取以下步骤进行操作: 确认打包文件是否存在问题 在发布vue3项目之前,需要先执行打包操作生成相应文件,打包命令如下: npm run build 此时会在项目根目录下生成”dist”文件夹,用于存放打包后的文件。为确认打包文件是否存在问题,可以初步使用本地服务器进行验证,终端操作命令如下: n…

    Vue 2023年5月28日
    00
  • 解决iView中时间控件选择的时间总是少一天的问题

    这里提供一种解决iView中时间控件选择的时间总是少一天的问题的方法。 问题现象 在使用iView的DatePicker组件(包括RangePicker)时,选择某个日期后,获取到的日期总是比实际选择的日期少一天。 解决方案 这个问题的原因是iView组件在计算日期时,没有考虑到时区的影响。具体来说,是由于iView通过Date对象的getFullYear、…

    Vue 2023年5月29日
    00
  • 15个Vue技巧,你都知道吗

    15个Vue技巧,你都知道吗 本篇攻略将讲解15个Vue的技巧,旨在提高您的Vue开发效率。 技巧一:使用v-for循环时,给每一项设置key 在使用v-for循环时,需要给每一项设置一个唯一的key值,以便在更新数据时能够快速定位需要更新的元素,否则会出现性能问题。 <template> <ul> <li v-for=&quo…

    Vue 2023年5月27日
    00
  • 详细聊聊Vue中的options选项

    接下来我将详细聊聊Vue中的options选项。 什么是Vue中的options选项 在Vue中,每个组件都可以定义一些可选的选项。这些选项可以用来配置组件的行为和功能。Vue的选项可以分为两类:数据选项和组件选项。 数据选项:Vue组件中的数据选项是一个JavaScript对象,用于传递数据到组件模板中。数据选项包括data、props、computed、…

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