使用 store 里的 dispatch 方法可以指派 action,也就是动作 .. 再试一下 .. 用一下 store 的 dispatch 方法 .. 一个动作就是一个对象 ..
动作里面要有一个 type 属性,设置一下动作的类型,或者叫动作的名字 .. 这里我们先指派一个 ADD_POST 这个动作 .. 应用里的 postsReducer 可以处理这个动作 ..
动作里面除了 type 以后,还可以包含一些其它的数据,这些数据我们可以自己随便定义 .. 比如添加一个 post .. 它的值又是一个对象 .. 里面有 id 属性 .. 表示内容的 id 号 .. 还有一个 title 属性,它的值是内容的标题 .. welcome to ninghao.net
现在控制台上最后一次输出的应用的 state .. 它的 posts 属性里面,就会多了一个项目 .. 你会看到,项目的 id 号是 1 ,标题是 welcome to ninghao.net ~
再 dispatch 一个动作 .. 这次动作的类型是 ADD_COMMENT .. 应用里的 commentsReducer 可以处理这个动作 ..
动作里面可以再带一个 comment 数据 .. 数据里面有一个 id 属性,这是评论内容的 id 号 .. 还有一个 postId 属性,它是评论所属的内容的 id 号 .. 还有一个 content 属性,它的值是具体的评论内容 ..
保存一下 ..
这回在控制台上最后一次输出的应用的 state ,在它的 comments 里面又会多了一个新的评论内容 ..
在应用里面指派了 ADD_COMMENT 这个动作以后 ..
会用 commentsReducer 来处理 .. 这个 reducer 一看动作是 ADD_COMMENT .. 它会返回一组新的评论内容 .. 这组新的评论内容里面会包含应用 state 里面原有的 comments ,再加上 ADD_COMMENT 里面带的这个新的评论项目 ..
处理好以后,结果会在 mainReducer 这里合并一下 .. postsReducer 这次啥也没干,它会返回它那部分原有的 state,也就是应用的 state 里的 posts 这块内容 ..
又把它交给了 posts ...
下面的 comments 的值,就会是在 commentsReducer 里面处理之后的新生成的一组评论数据,也就是原有的评论内容,再加上 ADD_COMMENT 动作里面带的新的评论项目 ..
应用里的 state 发生了变化 .. 就会执行 log 这个函数 .. 因为这个函数是 store 的 subscribe 指定要用的函数 ..
这个 log 做的事就是把 store 的 getState 返回的东西输出到控制台上 .. 这个 getState 返回的就是应用的 state .. 也就是应用里的数据 ..