前缀或范围Vuex mapActions和mapGetters以避免冲突

时间:2018-09-08 01:01:38

标签: vue.js vuejs2 vuex vuex-modules

我将 Vuex商店与具有操作 getters user.module一起使用,我在诸如所以:

<template>
     ...

     <login-form v-if="!isAuthenticated"/>

     ...
</template>

<script>
    import { mapActions, mapGetters } from 'vuex'

    export default { 

        ...

        computed :{
            ...mapGetters('user', ['isAuthenticated', 'isProcessing']),
        },
        methods:{
            ...mapActions('user', ['getUser']),
        }

        ...
    }
</script>

上面的脚本工作正常,我想要的是对操作和获取方法进行作用域,名称空间或添加前缀,以避免与组件中的其他方法(例如 { {1}} ,我尝试了这些组合,但是没有一个主题能完成这项工作:

user.isAuthenticated

提前谢谢。

1 个答案:

答案 0 :(得分:2)

您将必须使用对象语法将操作映射到组件中的其他名称:

...mapActions('user', {
  prefix_getUser: 'getUser',  // this.prefix_getUser -> user/getUser action
  prefix_getFoo: 'getFoo',    // this.prefix_getFoo  -> user/getFoo action
})

这在docs中有描述。