当前位置:   article > 正文

vue-router 动态路由传参 & 打开新窗口页面_vue2实现路由传递params参数并打开新页面

vue2实现路由传递params参数并打开新页面

一. 路由传参

   使用params方法传参的时候,要在路由后面加参数名,并且传参的时候,参数名要跟路由后面设置的参数名对应。

   使用query方法,就没有这种限制,直接在跳转里面用就可以。

   对比1:  query方法,可以与path和name共用,params只能对应name。

                query & params,前者在浏览器地址栏中显示参数,后者则不显示。

获取参数值:query:this.$route.query.id;params: this.$route.params.id

  1. 如果你要使用params传参,那么你的路由页面index.js必须带上参数,如下:
  2. {
  3. path: '/detail/:id',
  4. name: "detail",
  5. component: detail
  6. }
  7. 使用:
  8. 方法1:<router-link :to="{ name: 'detail', params: { id: 123 }}">点击按钮</router-link>
  9. 方法2this.$router.push({name:'detail',params: { id:123 } })
  10. 页面url显示结果是:http://localhost:8081/#/detail/123
  11. 如果你要使用query传参,那么你的路由页面index.js必须带上参数,如下:
  12. {
  13. path: '/detail',//这里不需要参入参数,参见上面的params写法
  14. name: "detail",
  15. component: detail
  16. }
  17. 使用:
  18. 方法1:<router-link :to="{ name: 'detail', query: { id: 123 }}">点击按钮</router-link>
  19. 方法2this.$router.push({name:'detail',query:{id:123}})
  20. 方法3:<router-link :to="{ path: 'detail', query: { id: 123 }}">点击按钮</router-link>
  21. 方法4this.$router.push({path:'detail',query:{id:123}})
  22. 页面url显示结果是:http://localhost:8081/#/detail?id=123

二. 打开新窗口页面

1. <router-link>标签实现新窗口打开:

官方文档中说 v-link 指令被 <router-link> 组件指令替代,且 <router-link>不支持 target="_blank" 属性,如果需要打开一个新窗口必须要用<a>标签,但事实上vue2版本的 <router-link> 是支持  target="_blank" 属性的(tag="a"),如下:

<router-link target="_blank" :to="{path:'/home',query:{ id:'1' }}">新页面打开home页</router-link>

2. 编程式导航:

有些时候需要在单击事件或者在函数中实现页面跳转,那么可以借助router的示例方法,通过编写代码实现。我们常用的是 $router.push 和 $router.go 但是vue2.0以后,这种方式就不支持新窗口打开的属性了,这个时候就需要使用this.$router.resolve,如下:

  1. let routeUrl = this.$router.resolve({
  2. path: "/share",
  3. query: {
  4. id:96
  5. }
  6. });
  7. window.open(routeUrl.href, '_blank');

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/338332
推荐阅读
相关标签
  

闽ICP备14008679号