{"action":"reopened","issue":{"url":"https://api.github.com/repos/spoike/refluxjs/issues/294","labels_url":"https://api.github.com/repos/spoike/refluxjs/issues/294/labels{/name}","comments_url":"https://api.github.com/repos/spoike/refluxjs/issues/294/comments","events_url":"https://api.github.com/repos/spoike/refluxjs/issues/294/events","html_url":"https://github.com/spoike/refluxjs/issues/294","id":62171640,"number":294,"title":"Why actions?","user":{"login":"danielearwicker","id":365934,"avatar_url":"https://avatars.githubusercontent.com/u/365934?v=3","gravatar_id":"","url":"https://api.github.com/users/danielearwicker","html_url":"https://github.com/danielearwicker","followers_url":"https://api.github.com/users/danielearwicker/followers","following_url":"https://api.github.com/users/danielearwicker/following{/other_user}","gists_url":"https://api.github.com/users/danielearwicker/gists{/gist_id}","starred_url":"https://api.github.com/users/danielearwicker/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/danielearwicker/subscriptions","organizations_url":"https://api.github.com/users/danielearwicker/orgs","repos_url":"https://api.github.com/users/danielearwicker/repos","events_url":"https://api.github.com/users/danielearwicker/events{/privacy}","received_events_url":"https://api.github.com/users/danielearwicker/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":8,"created_at":"2015-03-16T18:36:45Z","updated_at":"2015-03-17T18:28:22Z","closed_at":null,"body":"In original Flux it uses action dispatch instead of just having methods on stores that directly mutate the store.\r\n\r\nThis is so multiple stores can handle the same actions and so maintain consistent but different views of the same data.\r\n\r\nIn Reflux you (sensibly!) let stores aggregate data from other stores by just observing their change events.\r\n\r\nBut this should mostly mean that dependent stores don't need to handle actions. Ideally there are going to be two kinds of store: \r\n\r\n1. \"Model\" stores that respond to actions and mutate their own content, and \r\n\r\n2. \"Derived\" stores that just recompute their content every time they hear a change event.\r\n\r\n(Type 2 stores resemble react components, which run the render function any time something changes.)\r\n\r\nSo in that case, instead of actions, the Type 1 stores could just have methods to mutate their contents. No need for actions-as-events.\r\n"}}