当前位置:   article > 正文

vue 路由传参及解决动态路由传参刷新会消失问题_vue params动态路由传参,解决了页面刷新,数据会丢失的问题,但是会在path路径中会

vue params动态路由传参,解决了页面刷新,数据会丢失的问题,但是会在path路径中会

vue传参大致分为路由传参(?拼接传参)和动态路由传参

一、动态路由传参

定义路由

  1. const routes = [
  2. {
  3. path: '/first',
  4. name:'first',
  5. component:()=>import( '../components/first.vue' )
  6. // component:first
  7. },
  8. {
  9. path: '/second',
  10. name:'second',
  11. component:()=>import( '../components/second.vue' )
  12. },
  13. ]

router-link to 以对象形式跳转

  1. <template>
  2. <div id="app">
  3. <router-link :to="{name:'first',params:{name:'张三'}}">params</router-link>
  4. <router-link :to="{name:'second',query:{name:'李四'}}">query</router-link>
  5. <router-view></router-view>
  6. </div>
  7. </template>

(1)params传参

 <h1>params对象传参{{$route.params.name}}</h1>

 

 

 

(2)query传参

发现query传参并没有会丢失  注意看地址栏 在一开始跳转的时候 发现就在url地址栏上以?拼接了参数路径,而params跳转时没有,所以说这也是params动态路由传参和query动态路由传参的区别,也是params对象传参为什么会消失的问题。

解决params动态传参刷新后参数丢失问题

因为params动态路由传参时,url地址并没有拼接,但是query会拼接在地址栏上,所以vue提供给我们另一种动态传参的方式,我们只需要在定义路由时在后面拼接/:name,就可以解决刷新后参数会丢失的问题,注意这里不是以?拼接了路径  

  1. {
  2. path: '/first/:name',
  3. name:'first',
  4. component:()=>import( '../components/first.vue' )
  5. },

 跳转

<router-link to="/first/张三">params</router-link>

当然 还有一种push写法 也是一样的道理 项目中也是用的比较多的

对象跳转

    <a @click="$router.push({name:'first',params:{name:'张三'}})">a链接</a>

$router.push 

  <a @click="$router.push('/first/张三')">a链接</a>

二、路由传参  ?拼接

只需要在路由的后面利用?的形式 进行参数的拼接

  <router-link to="/second?name=张三">?传参</router-link>
    <a @click="$router.push('/second?name=张三')">a链接</a>

三、后退

  1. <a @click="$router.back()">回退</a>
  2. <a @click="$router.go(-1)">回退</a>

go的功能还是比较强大的 正数可以前进  负数可以后退  里面的数字可以决定前进后退的层次

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

闽ICP备14008679号