详解vue-router传参的两种方式


Posted in Javascript onSeptember 10, 2018

Vue Router 是 Vue.js 官方的路由管理器。它和 Vue.js 的核心深度集成,让构建单页面应用变得易如反掌。包含的功能有:

  1. 嵌套的路由/视图表
  2. 模块化的、基于组件的路由配置
  3. 路由参数、查询、通配符
  4. 基于 Vue.js 过渡系统的视图过渡效果
  5. 细粒度的导航控制
  6. 带有自动激活的 CSS class 的链接
  7. HTML5 历史模式或 hash 模式,在 IE9 中自动降级
  8. 自定义的滚动条行为

vue-router传参两种方式:params和query

params、query是什么?

    params:/router1/:id ,/router1/123,/router1/789 ,这里的id叫做params
     query:/router1?id=123 ,/router1?id=456 ,这里的id叫做query。

方法1:

    query 方式传参和接收参数

    传参:      

this.$router.push({
       path:'/openAccount',
       query:{id:id}
     });

     接收参数:

        this.$route.query.id

     注意:传参是this.$router,接收参数是this.$route
     两者区别:

        $router为VueRouter实例,想要导航到不同URL,则使用$router.push方法

        $route为当前router跳转对象,里面可以获取name、path、query、params等

方法2:

    params方式传参和接收参数

    传参:

this.$router.push({
       name:'/openAccount',
       params:{
         id: id
       }
     })

    接收参数: this.$route.params.id

    注意:params传参,push里面只能是 name:'xxxx',不能是path:'/xxx',因为params只能用name来引入路由,如果这里写成了path,接收参数页面会是undefined!!!

    二者还有点区别,可以理解为:query相当于get请求,页面跳转的时候,可以在地址栏看到请求参数,而params相当于post请求,参数不会再地址栏中显示

router.js

export default new Router({
 routes: [
  {
   path: '/',
   name: 'login',
   component: Login
  },
  {
   path: '/register',
   name: 'register',
   component: Register
  }
})

组件(传参):

<template>
 <div class="hello">
  <h1>{{ msg }}</h1>
  <button @click="routerTo">click here to news page</button>
 </div>
</template>
<script>
export default {
 name: 'HelloWorld',
 data () {
  return {
   msg: 'Welcome to Your Vue.js App'
  }
 },
 methods:{
  routerTo(){
   this.$router.push({ name: 'register', params: { userId: 123 }});//params方式 这里的name值是在定义route.js时中的name
   //this.$router.push({ path: '/register', query: { userId: 123 }});  //query方式 
  }
 }
}
</script>
<style>
</style>

组件(接收参数)

<template>
 <div>
  {{this.$route.params.userId}}或者{{this.$route.params.userId}}
 </div>
</template>
<script>
</script>

总结

以上所述是小编给大家介绍的vue-router传参的两种方式,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
JavaScript入门教程 Cookies
Jan 31 Javascript
JQuery下的Live方法和$.browser方法使用代码
Jun 02 Javascript
JQuery 操作/获取table具体代码
Jun 13 Javascript
Chrome下ifame父窗口调用子窗口的问题示例探讨
Mar 17 Javascript
jQuery实现可以控制图片旋转角度效果(附demo源码下载)
Jan 27 Javascript
JS组件Bootstrap按钮组与下拉按钮详解
May 10 Javascript
基于bootstrap实现广告轮播带图片和文字效果
Jul 22 Javascript
vue2.0+webpack环境的构造过程
Nov 08 Javascript
javascript 注释代码的几种方法总结
Jan 04 Javascript
使用原生js+canvas实现模拟心电图的实例
Sep 20 Javascript
Vue在页面数据渲染完成之后的调用方法
Sep 11 Javascript
Vue3.0写自定义指令的简单步骤记录
Jun 27 Vue.js
详解Vue.js使用Swiper.js在iOS
Sep 10 #Javascript
webuploader分片上传的实现代码(前后端分离)
Sep 10 #Javascript
在Vue 中使用Typescript的示例代码
Sep 10 #Javascript
ES6使用export和import实现模块化的方法
Sep 10 #Javascript
Vuejs 实现简易 todoList 功能 与 组件实例代码
Sep 10 #Javascript
浅谈微信小程序flex布局基础
Sep 10 #Javascript
微信小程序文章详情页面实现代码
Sep 10 #Javascript
You might like
通过缓存数据库结果提高PHP性能的原理介绍
2012/09/05 PHP
php根据身份证号码计算年龄的实例代码
2014/01/18 PHP
php禁止浏览器使用缓存页面的方法
2014/11/07 PHP
thinkphp5.0自定义验证规则使用方法
2017/11/16 PHP
php无限级评论嵌套实现代码
2018/04/18 PHP
理解Javascript_06_理解对象的创建过程
2010/10/15 Javascript
javascript的BOM汇总
2015/07/16 Javascript
jQuery Uploadify 上传插件出现Http Error 302 错误的解决办法
2015/12/12 Javascript
用js动态添加html元素,以及属性的简单实例
2016/07/19 Javascript
BOM系列第二篇之定时器requestAnimationFrame
2016/08/17 Javascript
vue2.0 中#$emit,$on的使用详解
2017/06/07 Javascript
Vue2.0 从零开始_环境搭建操作步骤
2017/06/14 Javascript
JavaScript EventEmitter 背后的秘密 完整版
2018/03/29 Javascript
vue v-for循环重复数据无法添加问题解决方法【加track-by='索引'】
2019/03/15 Javascript
原生js实现放大镜组件
2021/01/22 Javascript
[01:34]2014DOTA2 TI预选赛预选赛 选手比赛房大揭秘!
2014/05/20 DOTA
Python编程实现双击更新所有已安装python模块的方法
2017/06/05 Python
关于python的list相关知识(推荐)
2017/08/30 Python
python操作excel文件并输出txt文件的实例
2018/07/10 Python
详解python3中的真值测试
2018/08/13 Python
详解Python发送email的三种方式
2018/10/18 Python
Python matplotlib绘制饼状图功能示例
2019/09/10 Python
Python3标准库glob文件名模式匹配的问题
2020/03/13 Python
python numpy实现多次循环读取文件 等间隔过滤数据示例
2020/03/14 Python
python 在threading中如何处理主进程和子线程的关系
2020/04/25 Python
python3处理word文档实例分析
2020/12/01 Python
Django url 路由匹配过程详解
2021/01/22 Python
10种CSS3实现的loading动画,挑一个走吧?
2020/11/16 HTML / CSS
Subside Sports德国:足球球衣和球迷商品
2019/06/08 全球购物
公务员平时考核实施方案
2014/03/11 职场文书
村级环境卫生整治方案
2014/05/04 职场文书
保护水资源的标语
2014/06/17 职场文书
带香烟到学校抽的检讨书
2014/09/25 职场文书
Java 泛型详解(超详细的java泛型方法解析)
2021/07/02 Java/Android
微信小程序APP的事件绑定以及传递参数时的冒泡和捕获
2022/04/19 Javascript
win10系统xps文件怎么打开?win10打开xps文件的两种操作方法
2022/07/23 数码科技