store是联系state 和 reducer的部分
Store 有以下职责:
- 维持应用的 state;
- 提供
getState()
方法获取 state; - 提供
dispatch(action)
方法更新 state; - 通过
subscribe(listener)
注册监听器; - 通过
subscribe(listener)
返回的函数注销监听器。
Redux 应用只有一个单一的 store,当需要拆分数据处理逻辑时,应该使用 reducer 组合而不是创建多个 store。
import { createStore } from 'redux' import todoApp from './reducers' let store = createStore(todoApp)
//createStore() 的第二个参数是可选的, 用于设置 state 初始状态。
//var store=creatStore(reducer, initialState);
let store = createStore(todoApp, window.STATE_FROM_SERVER)
import { addTodo, toggleTodo, setVisibilityFilter, VisibilityFilters } from './actions' // 打印初始状态 console.log(store.getState()) // 每次 state 更新时,打印日志 // 注意 subscribe() 返回一个函数用来注销监听器 const unsubscribe = store.subscribe(() => console.log(store.getState()) )
//subscribe ,注册listener,监听state变化 // 发起一系列 action store.dispatch(addTodo('Learn about actions')) store.dispatch(addTodo('Learn about reducers')) store.dispatch(addTodo('Learn about store')) store.dispatch(toggleTodo(0)) store.dispatch(toggleTodo(1)) store.dispatch(setVisibilityFilter(VisibilityFilters.SHOW_COMPLETED)) // 停止监听 state 更新 unsubscribe();