详解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 instanceof 与typeof使用说明
Jan 11 Javascript
禁止拷贝网页内容的js代码
Jan 22 Javascript
js获取checkbox复选框选中的选项实例
Aug 24 Javascript
window.location的重写及判断location是否被重写
Sep 04 Javascript
浅析javascript 定时器
Dec 23 Javascript
node.js集成百度UE编辑器
Feb 05 Javascript
原生JS中slice()方法和splice()区别
Mar 06 Javascript
Angular使用过滤器uppercase/lowercase实现字母大小写转换功能示例
Mar 27 Javascript
vue中使用mxgraph的方法实例代码详解
May 17 Javascript
中级前端工程师必须要掌握的27个JavaScript 技巧(干货总结)
Sep 23 Javascript
js对象简介与基本用法示例
Mar 13 Javascript
JS前端模块化原理与实现方法详解
Mar 17 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
如何使用Gitblog和Markdown建自己的博客
2015/07/31 PHP
PHP面向对象之事务脚本模式(详解)
2017/06/07 PHP
用Javascript来生成ftp脚本的小例子
2013/07/03 Javascript
js 单击式的下拉菜单效果实例
2013/08/13 Javascript
Javascript Ajax异步读取RSS文档具体实现
2013/12/12 Javascript
JavaScript两种跨域技术全面介绍
2014/04/16 Javascript
获取中文字符串的实际长度代码
2014/06/05 Javascript
javascript手工制作悬浮菜单
2015/02/12 Javascript
jQuery实现加入购物车飞入动画效果
2015/03/14 Javascript
js实现跨域访问的三种方法
2015/12/09 Javascript
JS上传图片预览插件制作(兼容到IE6)
2016/08/07 Javascript
关于vue-router路径计算问题
2017/05/10 Javascript
在vue项目中使用Nprogress.js进度条的方法
2018/01/31 Javascript
Vue.js中使用iView日期选择器并设置开始时间结束时间校验功能
2018/08/12 Javascript
JS动画实现回调地狱promise的实例代码详解
2018/11/08 Javascript
基于JS实现一个随机生成验证码功能
2019/05/29 Javascript
使用pkg打包ThinkJS项目的方法步骤
2019/12/30 Javascript
完美解决通过IP地址访问VUE项目的问题
2020/07/18 Javascript
解决vue中el-tab-pane切换的问题
2020/07/19 Javascript
JavaScript字符串转数字的简单实现方法
2020/11/27 Javascript
vue $router和$route的区别详解
2020/12/02 Vue.js
python的staticmethod与classmethod实现实例代码
2018/02/11 Python
Python使用一行代码获取上个月是几月
2018/08/30 Python
Python3之不使用第三方变量,实现交换两个变量的值
2019/06/26 Python
python 按钮点击关闭窗口的实现
2020/03/04 Python
Django之腾讯云短信的实现
2020/06/12 Python
PyCharm中关于安装第三方包的三个建议
2020/09/17 Python
css3 column实现卡片瀑布流布局的示例代码
2018/06/22 HTML / CSS
HTML5中通过li-canvas轻松实现单图、多图、圆角图绘制,单行文字、多行文字等
2018/11/30 HTML / CSS
英国复古和经典球衣网站:Vintage Football Shirts
2018/10/05 全球购物
网络工程师面试(三木通信技术有限公司)
2013/06/05 面试题
街道社区活动报告
2015/02/05 职场文书
信用卡工作证明范本
2015/06/19 职场文书
学校扫黄打非工作总结
2015/10/15 职场文书
2016小学教师读书心得体会
2016/01/13 职场文书
如何使JavaScript休眠或等待
2021/04/27 Javascript