详解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 相关文章推荐
WEB页子窗口(showModalDialog和showModelessDialog)使用说明
Oct 25 Javascript
初学Jquery插件制作 在SageCRM的查询屏幕隐藏部分行的功能
Dec 26 Javascript
jquery设置按钮停顿3秒不可用
Mar 07 Javascript
AngualrJS中的Directive制作一个菜单
Jan 26 Javascript
值得分享的轻量级Bootstrap Table表格插件
May 30 Javascript
js 弹出对话框(遮罩)透明,可拖动的简单实例
Jul 11 Javascript
如何使用Vuex+Vue.js构建单页应用
Oct 27 Javascript
关于jQuery.ajax()的jsonp碰上post详解
Jul 02 jQuery
前端图片懒加载(lazyload)的实现方法(提高用户体验)
Aug 21 Javascript
vue中改变选中当前项的显示隐藏或者状态的实现方法
Feb 08 Javascript
新手快速入门微信小程序组件库 iView Weapp
Jun 24 Javascript
javascript设计模式 ? 职责链模式原理与用法实例分析
Apr 16 Javascript
详解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 和 COM
2006/10/09 PHP
PHP基础学习之流程控制的实现分析
2013/04/28 PHP
ThinkPHP处理Ajax返回的方法
2014/11/22 PHP
php提交表单时保留多个空格及换行的文本样式的方法
2017/06/20 PHP
php 数据结构之链表队列
2017/10/17 PHP
javascript 拖放效果实现代码
2010/01/22 Javascript
JavaScript中常用的运算符小结
2012/01/18 Javascript
15个jquery常用方法、小技巧分享
2015/01/13 Javascript
JavaScript使用push方法添加一个元素到数组末尾用法实例
2015/04/06 Javascript
jquery实现点击label的同时触发文本框点击事件的方法
2015/06/05 Javascript
基于javascript实现彩票随机数生成(升级版)
2020/04/17 Javascript
原生JS实现图片轮播与淡入效果的简单实例
2016/08/21 Javascript
JS之相等操作符详解
2016/09/13 Javascript
Vue-cli-webpack搭建斗鱼直播步骤详解
2017/11/17 Javascript
JS Generator 函数的含义与用法实例总结
2020/04/08 Javascript
部署Python的框架下的web app的详细教程
2015/04/30 Python
用Python编写一个每天都在系统下新建一个文件夹的脚本
2015/05/04 Python
在Python的Django框架下使用django-tagging的教程
2015/05/30 Python
python中解析json格式文件的方法示例
2017/05/03 Python
flask中使用蓝图将路由分开写在不同文件实例解析
2018/01/19 Python
Python3实现爬虫爬取赶集网列表功能【基于request和BeautifulSoup模块】
2018/12/05 Python
解决django后台样式丢失,css资源加载失败的问题
2019/06/11 Python
解决pyinstaller打包发布后的exe文件打开控制台闪退的问题
2019/06/21 Python
Python如何实现小程序 无限求和平均
2020/02/18 Python
深入浅析python变量加逗号,的含义
2020/02/22 Python
matplotlib基础绘图命令之imshow的使用
2020/08/13 Python
基于Python组装jmx并调用JMeter实现压力测试
2020/11/03 Python
Python使用windows设置定时执行脚本
2020/11/12 Python
HTML5 Canvas实现烟花绽放特效
2016/03/02 HTML / CSS
详解html5 shiv.js和respond.min.js
2018/01/24 HTML / CSS
乐高奥地利官方商店:LEGO Shop AT
2019/07/16 全球购物
自动化专业个人求职信范文
2013/12/30 职场文书
迎新生欢迎词
2015/01/23 职场文书
2016学习雷锋精神活动倡议书
2015/04/27 职场文书
HTML+CSS制作心跳特效的实现
2021/05/26 HTML / CSS
手把手带你彻底卸载MySQL数据库
2022/06/14 MySQL