Fala ai Ronan, tudo bem? Vamos lá:
Para acessar uma API eu preciso sempre passar por uma store ou uso outro tipo de recurso? Crio arquivos de services? Repositories?
Você pode realizar requisições para API diretamente nos componentes, mas, eu gosto de usar o Vuex e deixar essa lógica dentro das actions
.
Onde devo implementar regras de negócio e que as vezes podem ser utilizadas em mais de um componente?
Nesse caso, eu gosto de criar um arquivo chamando domains.js
dentro de cada dominio, ou seja: client/domains.js
ou product/domains.js
.
E dentro desse arquivo adiciona as funções de dominio.
Caso prefira uma pegada mais OO, pode trocar o domains.js
por uma classe de dominio: Client.js
ou Product.js
.
Existe alguma referência para organização do código?
Isso varia muito, vai de empresa para empresa e dev para dev.
Claro que existem as boas práticas, podemos padronizar o código com Prettier, ESLint e StyleLint, onde, existem padrões pré estabelecidos como da Airbnb, Google ou Standard.
Tenho um post no meu blog explicando um pouco de uma arquitetura:
https://blog.matheuscastiglioni.com.br/como-organizar-projetos-em-react/
Essa arquitetura sofreu algumas alterações, mas, a maioria ainda está igual.
Espero ter ajudado.