Javascript 如何在vue中进行动态操作

Javascript 如何在vue中进行动态操作,javascript,vue.js,Javascript,Vue.js,您好,我有一个修改vuex状态的方法,该方法的主要功能是添加或减去vuex状态 setStep(state, type) { state.currentStep++; } 但是我需要动态地将--o++传递给它,我如何实现这一点 我尝试了以下方法: setStep(state, type = ++ or --) { state.currentStep[type]; } 但是我没有得到结果,你知道如何动态地执行吗?你需要有两个函数increment和decreation,你可以根

您好,我有一个修改vuex状态的方法,该方法的主要功能是添加或减去vuex状态

setStep(state, type) {
    state.currentStep++;
}
但是我需要动态地将
--
o
++
传递给它,我如何实现这一点

我尝试了以下方法:

setStep(state, type = ++ or --) {
    state.currentStep[type];
}

但是我没有得到结果,你知道如何动态地执行吗?

你需要有两个函数
increment
decreation
,你可以根据需要选择调用其中一个

const-app=新的Vue({
el:“应用程序”,
数据(){
返回{
步骤:0
}
},
方法:{
更新映射(增量){
此.step+=incrementor;
}
}
})

--
{{step}}
++

传递布尔值而不是操作,然后使用if语句或

setStep(state, increment) {
    if (increment) {
        state.currentStep++;
    } else {
        state.currentStep--;
    }
}
或三元

setStep(state, increment) {
    increment ? state.currentStep++ : state.currentStep--;
}
我应该注意,这不是Vuex中的标准方法。突变总是只有一个副作用。你应该有一个变为递减的突变和一个变为递增的突变

然后,您可以在Vuex存储中使用调度方法将上述示例中的两种方法结合起来

您也可以改为提交步数:

setStep(state, stepAmount) {
    state.currentStep += stepAmount
}
如果阶跃量为负数,它将减小。如果它是正的,它将递增

提交将如下所示:

commit('setStep', -1);
commit('setStep', 5);

但如果你只希望有一个,你怎么能做到呢?请检查我的答案@JosuéMartínez@JosuéMartínez更新。非常感谢您的帮助。您的想法对我有效,无需限制我的变异。我已经考虑过这个替代方案,但是你不能用一种更动态的方式吗?是的,我还有另一个想法。我喜欢三元运算符的选项,代码在一行中看起来更干净。我同意:)检查最新的更新。您也可以改为提交步骤金额:)