Какая правильная «архитектура» во Vue?
========================================

 Изучаю Vue, и столкнулся с несколькими разными мнениями о том, как правильно строить приложение  

Допустим, мне нужно получить данные с сервера, обработать их в цикле и вывести в компоненте. Есть варианты:  

1) в экшенах Vuex не должно быть лишнего, только получение данных, затем обработка в компоненте (например, в хуке created) цепочкой промисов или async/ await, затем вызов коммита:  

1.1) напрямую из компонента  

1.2) через экшн, который просто делает коммит изменений  

2) получать данные в экшенах, там же их обрабатывать (либо в другом экшене), там же вызывать коммит. в таком случае код в хуке компонента будет состоять из пары строчек, где вызывается нужный экшн  

 Дополнительный вопрос - можно ли обрабатывать данные в коммите, или же он должен заниматься исключительно мутацией стора?  
  

Эти варианты я услышал от двух Senior Vue Developer, поэтому думаю один из них все же верный. Так как правильно? 

 Я считаю что бизнес логика должна быть во Vuex, компонент должен быть чистым, там остается только получить готовые данные из стора и отрисовать, при какой нибудь динамике комитишь в стор, и он снова что-то делает, и компонент перерисовывается. 

 Из соображений тестируемости — компоненты не должны содержать ни бизнес-логики, ни сетевого кода, экшены должны быть как можно более тупыми, а все самое интересное — в мутациях и геттерах. Так будет проще всего покрывать тестами и дебажить.