Poderão existir situações onde você vai precisar criar várias instâncias de um Módulo, por exemplo:
Ao criar várias Stores que usam o mesmo Módulo (mais comum em SSR - Server Side Rendering);
Registrar o mesmo Módulo várias vezes na mesma Store
Se usarmos um objeto simples para declarar o estado do Módulo, esse objeto de estado será compartilhado por referência e causará poluição entre estados da Store/Module quando ele sofrer uma mutação.
Este é exatamente o mesmo problema com os dados dentro dos componentes do Vue. Portanto, a solução também é a mesma - use uma função para declarar o estado do Módulo:
const tarefasModule = {
state () {
return {
erro: undefined,
tarefas: [],
tarefaSelecionada: undefined
}
},
// mutations, actions, getters...
}Referência: https://vuex.vuejs.org/guide/modules.html#module-reuse