(转)一个vue路由参数传递的注意点

首先我的路由的定义

{
        path: ‘/b‘,
        name: ‘B‘,
        component: resolve => require([‘../pages/B.vue‘], resolve)
}

我从A组件跳转到B组件,并通过路由信息对象传递一些参数

this.$router.push({
        path: ‘/b‘,
        params: {
          paramA: ‘a‘
        },
        query:{
          paramB: ‘b‘
        }
})

在B组件中获取参数

this.$route.query.paramB         //b
this.$route.params.paramA        //undefined

通过路由的params对象传递过来的参数paramB始终是undefined,始终找不到原因。

通过查阅文档,终于找到原因,那是因为路由的params对象使用,必须要通过路由名来调用路由,而不同通过path来调用,而query对象则没有这个要求。所以我们修改下代码:

this.$router.push({
        name: ‘B‘,
        params: {
          paramA: ‘a‘
        },
        query:{
          paramB: ‘b‘
        }
})

将path参数换成对应的路由名称就可以了,这个时候获取参数就一切正常了。

this.$route.query.paramB         //b
this.$route.params.paramA        //a

作者:西门小妖
链接:https://juejin.im/post/5a28a5bdf265da4311201909
来源:掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

原文地址:https://www.cnblogs.com/lsy0403/p/8665034.html

时间: 2024-07-31 05:58:58

(转)一个vue路由参数传递的注意点的相关文章

14.Vue路由参数传递以及重定向

1.使用场景 我们经常需要把某种模式匹配到的所有路由,全都映射到同个组件.例如,我们有一个 User 组件,对于所有 ID 各不相同的用户,都要使用这个组件来渲染.此时我们就需要传递参数了: 2.使用流程 修改父组件,绑定的子组件路由名称以及传递的参数 修改路由配置文件子组件的路径中添加参数,以及修改名称 修改子组件<template>内容用于展示 3.路由参数传递的两种方式 注:不要在<template>中直接添加获得参数,需要在外层加标签包含起来 1.占位符: 修改父组件Mai

记录一个vue路由拦截效果的小技巧

使用一句三元表达式, <router-link class="flex-left left" tag="div" :to="loginState?'/loginOut':''"> <img src="../../assets/img/iconfont/unlogo.png" >                    //这里写死,省略了代码,项目中是按实际需求完成的登录和非登录展示不同的logo(默认的

Vue路由传递参数详细说明

前言:最近我跟同事在做一个BI系统,采用前后端分离.整个系统包括数据分析系统.运营支持.系统设置等多个子系统.数据分析系统其实就是做各种数据报表.数据统计.实时数据的系统,这里面其实整个页面就是一个模板,最上面是filter.第二级是统计图.最下面是table数据.所以在数据分析子系统中,只要配置一个路由就可以匹配所有页面,在系统中,我把这个为公用路由.至于公用路由权限如何鉴定其实很简单:获取到用户权限列表后,渲染出所有的权限菜单,但注意每次跳转时一定要进行权限校验,具体原因自行思考.说着有点跑

Vue路由基础

Vue路由 功能就是在不重新请求页面的情况下,更新页面视图: 一.安装: 1)cnpm install vue-router -s 2)依赖:cnpm install 二.设计路由界面: 创建components文件夹,文件夹内分别创建user.Home组件 *user.vue* <template> <div>user</div> </template> *Home.vue* <template> <div>Home</div

vue路由

ue-router是Vue.js官方的路由插件,它和vue.js是深度集成的,适合用于构建单页面应用.vue的单页面应用是基于路由和组件的,路由用于设定访问路径,并将路径和组件映射起来.传统的页面应用,是用一些超链接来实现页面切换和跳转的.在vue-router单页面应用中,则是路径之间的切换,也就是组件的切换. 本文将以示例的形式来介绍vue-router的各个特性,一共包含6个示例,每个示例都有乞丐版,前5个示例有皇帝版.乞丐版是将所有代码混杂在一起的HTML页面,皇帝版是基于vue-web

初印象至Vue路由

初印象系列为快速了解一门技术的内容,后续会推出本人应用这门技术时发现的一些认识. Vue路由和传统路由的区别: Vue路由主要是用来实现单页面应用内各个组件之间的切换,同样支持传递参数等功能.而传统路由使用超链接 以下内容来自官网,js使用ES6 如何在vue项目中使用vue-router HTML <script src="https://unpkg.com/vue/dist/vue.js"></script> <script src="htt

自己动手写一个前端路由插件

在单页应用上,前端路由并不陌生.单页应用是指在浏览器中运行的应用,在使用期间页面不会重新加载.       基本原理:以 hash 形式(也可以使用 History API 来处理)为例,当 url 的 hash 发生改变时,触发 hashchange 注册的回调,回调中去进行不同的操作,进行不同的内容的展示.       基于hash的前端路由优点是:能兼容低版本的浏览器. history 是 HTML5 才有的新 API,可以用来操作浏览器的 session history (会话历史). 

Vue - 路由传递参数

Vue 2.0  路由传递参数 Vue 路由传递参数 有两种方式: 一.用name传递参数 两步完成用name传值并显示在模板里: 在路由文件src/router/index.js里配置name属性. 1 2 3 4 5 6 7 routes: [ { path: '/', name: 'Hello', component: Hello } ] 模板里(src/App.vue)用$router.name的形势接收,比如直接在模板中显示: 1 <p>{{ $route.name}}</p&

Vue路由跳转问题记录

最近项目上需要用Vue用来做app,在Vue中使用路由时遇到下面的问题. 路由设置如下: { path:'/tab', component:Tab, children:[{ path:'layoutList', name:'LayoutList', component:LayoutList },{ path:'layoutView/:layoutId', name:'LayoutView', component:LayoutView },{ path:'layoutDetail/:viewId'