vue页面跳转传参

需求场景:搜索时点击搜索按钮跳转到搜索页面并带搜索关键字。如下图:

方式1:字符串传参:

1.params传参:不带问号,地址栏占位。

先在路由配置如下:

{
            path:'/search/:keyword',
            component:Search,
            meta:{footShow:true}
        },

页面如下: 

<div class="searchArea">
        <form action="###" class="searchForm">
          <input
            type="text"
            id="autocomplete"
            class="input-error input-xxlarge"
            v-model="keyword"
          />
          <button class="sui-btn btn-xlarge btn-danger" type="button" @click="goSearch">
            搜索
          </button>
        </form>
      </div>

上图v-model的keyword是表单输入框绑定的关键字,点击搜索按钮跳转并传参。

methods:{
    goSearch(){
      // 字符串传参,params方式:不带问号,地址栏占位。
      this.$router.push('/search/' + this.keyword)
    }
  }

结果:

 2.query传参:带问号,地址栏不占位。

goSearch(){

      // 字符串传参,query方式:带问号,地址栏不占位。
      this.$router.push('/search/' + "?k=" + this.keyword)
      
    }

结果:

 方式2:对象方式传参:

首先得在路由配置name属性:如下图配置name属性为:search

{
            path:'/search/:keyword',
            component:Search,
            meta:{footShow:true},
            name:"search"
        },
goSearch(){
      // 对象方式传参params
      this.$router.push({
        name:'search',
        params:{
          keyword:this.keyword,
        }
      })
      
    }
this.$router.push({
        path:'/search',
        query:{
          k:this.keyword,
        }
      })

结果:

注意:如果对象形式传参,params方式要用name属性,而query方式要用path属性、

写在最后:如果params参数不传递(传空字符串):

需要在路由配置时path后面加上问号(问号代表可传可不传),如下:

{
            path:'/search/:keyword?',
            component:Search,
            meta:{footShow:true},
            name:"search"
        },

传递方法如下:

 this.$router.push({
        name:'search',
        params:{
          keyword:''|| undefined ,
        }
      })

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Math.random( ) ;

如果你刚好喜欢,则可以给我点动

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值