Vue 页面状态保持页面间数据传输的一种方法(推荐)

2020-06-14 06:18:02易采站长站整理

clearParamsStack: true,
backState: true
})
}
})(this)
}] }
},
created() {
this.description = `${this.params.phoneNumb} 成功充值 ${this.params.amount}`
}
}
</script>

paramsStack mixin

以上3个页面都集成了 paramsStack mixin ,定义如下:


/**
* 参数栈mixin对象
* <p>
* 方便页面组件继承之后操作参数栈
* @type {Object}
*/
export const paramsStackMixin = {
data() {
return {
/**
* 声明该页面是栈底部
*/
isStackBottom: false
}
},
computed: {
...mapGetters([
/**
* 查看`vuex#vplus.paramsStack[top-length]`栈顶参数
*/
'params'
]),
/**
* 查看`vuex#vplus.backParams`回传参数
*/
backParams() {
return this.$store.state[MODULE_NAME].backParams
},
/**
* 查看`vuex#vplus.backState`是否是出栈|是否是返回状态
*/
backState() {
return this.$store.state[MODULE_NAME].backState
}
},
methods: {
...mapMutations([
/**
* 入栈
*/
'pushParams',
/**
* 修改栈顶参数
*/
'modifyParams',
/**
* 出栈
*/
'popParams',
/**
* 清空参数栈
*/
'clearParamsStack',
/**
* 设置是否是出栈|是否是返回状态(点击返回页面)
*/
'setBackState'
])
},
// 导航离开该组件的对应路由时调用
beforeRouteLeave(to, from, next) {
if (this.backState && this.isStackBottom) {
this.clearParamsStack()
}
next()
}
}

配置

没有个性化配置,可以查看全局通用配置

API接口

restoreParamsStack


/**
* $vp.restoreParamsStack()
* 恢复插件中`vuex#$vp.paramsStack` && vuex#$vp.backParams` && vuex#$vp.backState`参数栈所用状态
* <p>
* 在当前模块重新安装的时候,一般对应就是插件初始化和页面刷新的时候
*/
restoreParamsStack()

psModifyBackState


/**
* $vp.psModifyBackState(bckState)
* <p>
* 设置`vuex#vplus.backState`返回状态
* @param {Boolean} [backState=false] */
psModifyBackState(bckState)

psClearParamsStack


/**
* $vp.psClearParamsStack()
* <p>
* 清空参数栈
*/
psClearParamsStack()

psPageNext


/**
* $vp.(location[, {params = {}, clearParamsStack = false, backState = false} = {}])