为了账号安全,请及时绑定邮箱和手机立即绑定

vue-router获取不到params参数

vue-router获取不到params参数

想哭就要笑x 2020-03-27 02:40:52
我想通过 vue-router 跳转一个新的页面,并传递参数到新页面中,但是怎么也获取不到 params 里的数据,下面是具体代码。发起跳转页面js代码:var router = new VueRouter({   mode: 'history',   routes: [{path: '/article/detail/', name: '/detail'}] }) Vue.component('article-card',{   template: '#article-card',   methods: {     _to: function(){       var detail = this.$router.resolve({name: "/detail", params: {article_id: 78}})       window.open(detail.href, '_blank')     }   }, }) var article_list = new Vue({   el: '#article_list',   router: router })/article/detail/ 会请求后端,返回一个新的页面,在新页面中获取 params 。_to 就是发起请求的方法,在页面的组件中调用。目标页面js代码:var router = new VueRouter({   mode: "history" }) var header = new Vue({   el: '#header',   created: function(){     console.log('id::'+this.$route.params.article_id)   },   router: router, })可以跳转到目标页面,控制台也没有报错,但是打印结果为 undefined 。使用 query 传参可以正常获得参数。检查了很长时间没发现哪里出错,拜托大家帮忙看一下。上面的代码都是直接在 js 文件里写的,没有用模块化。
查看完整描述

1 回答

?
qq_南方

TA贡献2条经验 获得超0个赞

你在mounted函数中试一下,name 把斜杠去掉。

我感觉,你用window.open(),并没有使用router.push()特性。

你打一下,query下 datail.href, 和 param 下的detail.href

query 应该是 /article/detail?article_id=78

param 应该是 /article/detail

我是新手,才刚开始学,看代码比较慢。


查看完整回答
反对 回复 2020-03-27
  • qq_南方
    qq_南方
    我感觉,你可以直接用上面定义的那个router push()过去,试一下。 或者$this.router.push(),我不知道这里面什么关系。
  • qq_南方
    qq_南方
    this.$router
  • qq_南方
    qq_南方
    或者直接使用,window.open(path+query参数),不使用路由的resolve()函数。
  • 1 回答
  • 0 关注
  • 3541 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信