1、store

  1. //store
  2. //index.js
  3. import {createStore} from 'redux'
  4. import reducer drom './reducer'
  5. let store = createStore(reducer);
  6. export default store;
  7. //reducer.js
  8. const defaultState = {
  9. msg:"react很不好用"
  10. }
  11. const reducer = (state=defaultState,action) => {
  12. //reducer拿到数据之后,会和之前的数据对比
  13. console.log(action)
  14. if(action.type==="btn_value"){
  15. let newState = {...state};
  16. newState.msg = action.value;t
  17. return new State
  18. }
  19. return state;
  20. }
  21. export default reducer;
  1. reducer就是对state重新计算的过程 reducer必须是函数
  2. reducer不能直接修改数据

2、Home.js

  1. //Home.js
  2. constructor(props){
  3. super(props);
  4. this.state = store.getStore();
  5. store.dubscribe(this.handleStoreChange)
  6. }
  7. <button onClick={this.handleClick}>改变</button>
  8. handleClick=()=>{
  9. const action = {
  10. type:"btn_value",
  11. value:"redux很难用"
  12. }
  13. store.dispatch(action)
  14. }
  15. handleStoreChange(){
  16. this.setState(store.getState())
  17. }