在Vuex中从另一个动作中调用一个动作是不好的做法吗?

时间:2020-08-22 04:08:45

标签: vue.js vuex

我正在Vue应用程序中考虑以下两种选择。试图确定是从另一个动作中调用一个动作,还是太杂乱。

替代之一:

store.js

const actions = {
    funcOne (context) {
        //Do something
        context.dispatch(funcTwo)
    }
    funcTwo () {
        //Do something else
    }
}

component.vue

methods: {
    doSomething () {
        this.$store.dispatch(funcOne)
    }
}

或替代方法二:

store.js

const actions = {
    funcOne () {
        //Do something
    }
    funcTwo () {
        //Do something else
    }
}

component.vue

methods: {
    doSomething () {
        this.$store.dispatch(funcOne)
        this.$store.dispatch(funcTwo)
    }
}

这里是否有最佳实践,还是我选择其中的哪一个都没关系?

1 个答案:

答案 0 :(得分:4)

这不是一个坏习惯!它们被设计为易于组成,documentation甚至具有示例。

如果动作紧密耦合,即在每种情况下都只能在另一个动作之后调用,那么更好的做法是分派该动作,然后让第一个动作调用第二个动作。

如果它们是解耦的,即可以任意顺序调用它们并且可以单独使用它们,则可以通过从方法中调用这两个动作来更好地以编码方式进行通信。

请记住,动作是用于异步动作的,因此请充分利用async / await,它们将非常易于管理。