vue页面跳转传参

vue页面跳转传参

写vue的时候,在查看详情页面需要获取上一个页面触发点击事件按钮相应的id

vuex存储

最开始我就是想着可以直接用vuex仓库,在点击页面将id存入,在详情页面拿出来进行相应的调用。

//vuex下的store.js里面
const state = {
  id:"",
};
const mutations = {
  setIid(state, id) {
    state.id = id
  },
};
//点击页面
<el-table-column label="流水号">//这是在element table表格里面点击获取详情
  <template slot-scope="scope">
    <span class="openurl" @click="Opendetails(scope.row)">{{scope.row.tSerialNum}}</span>
  </template>
</el-table-column>
Opendetails(row) {
  this.setId(row.tId)
}
//详情页面
mounted: function() {
  console.log(this.id);//得到传过来的id,可以用此请求数据
  //......
}

记得在script标签里面引入import { mapState, mapMutations, mapGetters, mapActions } from “vuex”,还要把相应的属性或方法的映射加入

但是用vuex传值会在刷新之后失效


用localStorage传参

因为sessionId是存在localStorage里面了,所以就想这种页面间的传值是不是也可以用localStorage,但是如果这种传参比较多的话可能存储的地方会有点多,就pass掉了这个方法。


用路由query传参

后面又想起了可以直接在路由上面传参,为了方面就直接使用了query,它不需要去设置路由文件

//点击页面
<el-table-column label="流水号">
  <template slot-scope="scope">
    <span class="openurl" @click="Opendetails(scope.row)">{{scope.row.tSerialNum}}</span>
  </template>
</el-table-column>
Opendetails(row) {
  this.$router.push({name:'apply3_1',query:{id:row.tId}});
}
//详情页面
mounted: function() {
  console.log(this.$route.query.id);
  //......
}

路由如下:
在这里插入图片描述


用路由params传参

但是用query的话,路由上面会有键名,最好谁让他没有键名更安全
params需要设置路由的index.js文件,参数名要跟路由后面设置的参数名对应。
如果路由上面不写参数,也是可以传过去的,但不会在url上面显示出你的参数,并且当你跳到别的页面或者刷新页面的时候参数会丢失(如下图所示),那依赖这个参数的http请求或者其他操作就会失败。

params是路由的一部分,必须要有。query是拼接在url后面的参数,没有也没关系。
params一旦设置在路由,params就是路由的一部分,如果这个路由有params传参,但是在跳转的时候没有传这个参数,会导致跳转失败或者页面会没有内容。
//router下面的index.js文件
{
  path:'/apply3_1/:id/:index',
  name: 'apply3_1',
  component: apply3_1
}
//点击页面
<el-table-column label="流水号">
  <template slot-scope="scope">
    <span class="openurl" @click="Opendetails(scope.row)">{{scope.row.tSerialNum}}</span>
  </template>
</el-table-column>
Opendetails(row) {
  this.$router.push({name:'apply3_1',params:{id:row.tId,index:1}});
}
//详情页面
mounted: function() {
  console.log(this.$route.params.id);
  console.log(this.$route.params.index);
  //......
}

路由如下:
在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值