This architecture was chosen for separation of concerns. Everything is broken into views with the intention of visualizing how users will interact with the application.
Each view will have it's own directory, holding it's associated components, actions, dispatcher, stores, and other resources that are shared among multiple views will live in the common directory.