zoukankan      html  css  js  c++  java
  • taro3.x: 搭建redux环境

    安装:

    npm install redux react-redux redux-thunk redux-logger

    创建文件:

    src/store/index.ts:

    import { createStore, applyMiddleware } from 'redux'
    import thunkMiddleware from 'redux-thunk'
    import { createLogger } from 'redux-logger'
    import rootReducer from '../reducers'
    
    const middlewares = [
        thunkMiddleware,
        createLogger()
    ]
    
    export default function configStore() {
        const store = createStore(rootReducer, applyMiddleware(...middlewares));
        return store;
    }

    src/reducers/index.ts

    import { combineReducers } from "redux"
    import counter from './counter'
    
    export default combineReducers({
        counter
    })

    src/reducers/counter.ts

    import { ADD } from '../constants/counter'
    
    const INITIAL_STATE = {
        num: 0
    }
    
    export default function counter(state = INITIAL_STATE, action) {
        switch (action.type) {
            case ADD:
                return {
                    ...state,
                    num: state.num + 1
                }
    
            default:
                return state
        }
    }

    src/actions/counter.ts

    import { ADD } from '../constants/counter'
    
    export const add = () => {
        return { type: ADD }
    }
    
    export function asyncAdd() {
        return dispatch => {
            setTimeout(() => {
                dispatch(add())
            }, 2000)
        }
    }

    src/constants/counter.ts

    export const ADD = 'ADD';

    app.tsx

    import React, { Component } from 'react'
    import { Provider } from 'react-redux'
    import configStore from './store'
    import './app.scss'
    
    const store = configStore();
    
    class App extends Component {
    
      render() {
        // this.props.children 是将要会渲染的页面
        return (
          <Provider store={store} >
            {this.props.children}
          </Provider>
        )
      }
    }
    
    export default App
  • 相关阅读:
    php打印出10*10表格
    php打印出1到2000年之间所有的闰年
    借鉴一篇好文章
    女程序员的预备篇
    SQL存储过程删除数据库日志文件的方法
    Mongodb无法访问28107的问题
    使用 xsd.exe 命令工具将 xsd 架构生成 类(CS) 文件
    C# 用POST提交json数据
    WinForm 使用 HttpUtility
    Sql Server 分区之后增加新的分区
  • 原文地址:https://www.cnblogs.com/Nyan-Workflow-FC/p/13529088.html
Copyright © 2011-2022 走看看