利用vuex实现页面跳转参数存储获取

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&&parameters[‘faceAnalysis’+this.$route.query.feature]){
var query=parameters[‘faceAnalysis’+this . $route.query.feature];
}

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用Vuex实现页面跳转时,需要保持原来的筛选条件,可以通过以下步骤实现: 1. 在Vuex的store中定义一个全局状态对象,该对象用于存储筛选条件。 2. 在筛选条件发生变化时,将新的条件值存储到该全局状态对象中。 3. 在跳转页面前,获取全局状态对象中的筛选条件值。 4. 在目标页面中,在页面加载完成后,通过读取全局状态对象中的筛选条件值,来初始化页面的筛选条件。 5. 在页面组件中使用计算属性或getter方法,从Vuex的全局状态对象中获取筛选条件值,并应用到相应的组件方法中。 以下是一个示例代码,以帮助理解上述步骤: 1. 在Vuex的store.js文件中: ```javascript import Vue from 'vue'; import Vuex from 'vuex'; Vue.use(Vuex); export default new Vuex.Store({ state: { filterConditions: {}, // 存储筛选条件的全局状态对象 }, mutations: { updateFilterConditions(state, conditions) { // 更新筛选条件的mutation state.filterConditions = conditions; }, }, }); ``` 2. 在筛选页面组件中: ```javascript import { mapMutations } from 'vuex'; export default { methods: { ...mapMutations(['updateFilterConditions']), applyFilterConditions() { // 将新的筛选条件存储到全局状态对象中 this.updateFilterConditions({ // 筛选条件相关属性和值 }); // 导航到另一个页面 this.$router.push('/目标页面'); }, }, } ``` 3. 在目标页面组件中: ```javascript import { mapState } from 'vuex'; export default { computed: { ...mapState(['filterConditions']), filteredData() { // 使用筛选条件来处理数据 // 在此处应用筛选条件到数据,以获取符合条件的filteredData }, }, created() { // 初始化目标页面时,获取全局状态对象中的筛选条件,并使用它们来初始化页面的筛选条件 this.initializeFilterConditions(); }, methods: { initializeFilterConditions() { // 读取筛选条件,根据需要初始化页面的筛选条件 // 例如:this.filter = this.filterConditions.filter; }, }, } ``` 通过以上步骤,我们可以在使用Vuex实现页面跳转时,保持原来的筛选条件。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值