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
  • 相关阅读:
    vue项目搭建
    轮播 删除中间的还是居中
    随内容增加,背景不设高度自适应,背景图不拉伸和变形
    緢点连接
    左侧背景,右侧数据,根据数据左侧背景自适应
    问题
    手机访问网站,点击手机号码直接拨打电话
    长度超出之后文字变成省略号
    css中vw,vh单位对于UC的兼容性问题
    线性渐变的兼容性写法
  • 原文地址:https://www.cnblogs.com/Nyan-Workflow-FC/p/13529088.html
Copyright © 2011-2022 走看看