
redux的基本用法:
action:一是含有type参数的js对象,一般由store.dispatch(action)调用,该对象是描述store要变化的一些数据来源,例如:
dispatch调用的方式为store.dispatch(setVar('hello', 'java'))
reducer: 这是store真正改变的函数,返回一个新的state对象,可以用一些assign(), concat(), splice()函数,或者用immutableJS方式生成新的对象
当然不同的reducer可以通过combineReducers()去合并多个散列的reducers,
store: 通过createStore(reducers)去生成单一的appData集;其有公共的方法:
getState()获取state值dispatch()改变state的值subscribe(listener)注册监听函数
applyMiddleware(…middlewares):middleware(arguments)有两个参数,Store‘dispatch和getState
用法:
bindActionCreators: 将返回为action的函数转变成key为该函数名,value为将将dispatch包含在action的函数
参数:actionCreators和dispatch,返回一个和action相似的对象,只是每个action对象都会直接调用store.dispatch(action)
redux 的源码结构

createStore的源码
  | 
  | 
combineReducers的源码:
  | 
  | 
总结
最基本的源码就这些,写法还是挺精致的,回到文中一开始的那张图,结合一段代码来看
  | 
  | 
该页面就是一个创建了store作为state的数据集,在每次用户交互的时候,通过store.dispatch(action)来改变store值,同时添加监听函数store.subscribe(render)即每次dispatch的时候都会调用该render;这样一来,形成了单一数据流,数据变化就引起界面的变化。