1.vue中我们用于页面跳转有三种方式
第一种:相当于get请求,参数会直接带在地址栏后path+query,path是路由的全路径。
接收页面用this.$route.query.feature来获取
第二种:相当于post请求,参数不会直接带在地址栏后name+params
接收页面用this.$route.params.feature来获取
第三种:
利用vuex来存储调转时页面的参数,这是因为当我们业务时页面跳转经常会带很多参数,又要求页面多开的情况时,只能选择get方式,因为需要在path后加上匹配id来保证一个页面根据查询特征不同而多次打开,可是get请求参数却是直接在地址后这样很不美观,因此利用vuex来存储参数,路由只用放上跳转地址即可:
1.首先需要
const store = new Vuex.Store({
state: {
parameters:{}//保存页面传参
},
getters:{
parameters : state => state.parameters
},
mutations: {
setParameters : (state,parametersData) => {//页面参数传递格式{key:‘key’,value:‘value’}
if(parametersData){
//试了好久state.parameters[key]=value这样会报错只能先取出来添加属性再赋值
let parameters=state.parameters;
parameters[parametersData.key]=parametersData.value;
state.parameters=parameters;
}
}
},
modules
})
//放置参数
this.$ store.commit(“setParameters”,{key:‘faceAnalysis’+item.query.feature,value:this.query});
this.$ router.push({path:’/dataSelect/faceAnalysis/’+param.feature,query:{feature:this.query.feature});
接收页面:
let parameters=this.$ store.getters.parameters;
if(this.$ route.query.feature&¶meters[‘faceAnalysis’+this.$route.query.feature]){
var query=parameters[‘faceAnalysis’+this . $route.query.feature];
}