zoukankan      html  css  js  c++  java
  • [Redux] Store Methods: getState(), dispatch(), and subscribe()

    console.clear();
    const counter = (state = 0, action) => {
      switch (action.type) {
        case 'INCREMENT':
          return state + 1;
        case 'DECREMENT':
          return state - 1;
        default:
          return state;
      }
    } 
    
    // Create a store
    const {createStore} = Redux;
    // Store hold the state, can accept a reducer function
    const store = createStore(counter);
    
    let currentState = store.getState();
    console.log(currentState); // 0
    
    store.dispatch( {type: 'INCREMENT'} );
    console.log(store.getState()); // 1
    
    store.subscribe( () => {
      document.body.innerText = store.getState();
    });
    
    document.addEventListener('click', ()=>{
      store.dispatch( {type: 'INCREMENT'} );
    })

    If we run we will miss the first init state, it starts from '2'...

    So we need to call it before subscribe:

    console.clear();
    const counter = (state = 0, action) => {
      switch (action.type) {
        case 'INCREMENT':
          return state + 1;
        case 'DECREMENT':
          return state - 1;
        default:
          return state;
      }
    } 
    
    // Create a store
    const {createStore} = Redux;
    // Store hold the state, can accept a reducer function
    const store = createStore(counter);
    
    let currentState = store.getState();
    console.log(currentState); // 0
    
    store.dispatch( {type: 'INCREMENT'} );
    console.log(store.getState()); // 1
    
    const render = ()=> {
      document.body.innerText = store.getState();
    }
    render();
    store.subscribe( render);
    
    document.addEventListener('click', ()=>{
      store.dispatch( {type: 'INCREMENT'} );
    })
  • 相关阅读:
    JAVA中的流-简介(二)
    JAVA中的流-简介(一)
    Java中内部类简介
    应用小练习-自定义栈
    集合知识点(二)
    集合知识点(一)
    JAVA中的正则表达式简介
    从头文件中学习sfr和sbit
    PCB中实现元器件旋转一个角度放置
    DXP中插入LOGO字体方法(2)
  • 原文地址:https://www.cnblogs.com/Answer1215/p/4993492.html
Copyright © 2011-2022 走看看