redux异步action_简化 Redux 开发的实践和思考

a564b703778ae7e541c2ad0bc946896f.png
团队里一直都在用 Redux 做状态管理,Redux 本身非常轻量,区区上百行代码就实现了一个清晰的状态管理框架,但是围绕 Redux 本身却出现了很多争议,比如需要写大量的 Action 模板代码,需要写很多 switch case 分支判断,Action 和 Reducer 分开写难以维护等等,本文主要是总结项目中如何简化 Redux 开发,提供相关参考思路。

问题

典型的 Redux 代码如下:

Action Creator:

export const SET_TODOS = 'SET_TODOS';
export const setTodos = (list = []) => {
    
    return {
    
        type: SET_TODOS,
        list,
    }
}

export const loadTodos = (params) => {
    
    return async (dispatch, getState) => {
    
        const todos = await http.get('save/todo');
        dispatch(setTodos(setTodos));
    }
}

Reducers:

import {
    
    SET_TODOS,
} from './actions'

export const setTodos = (state, list) => {
    
    return state.set('list', list);
}

export const reduder = (state, action) => {
    
    switch (action.type) {
    
        case SET_TODOS:
            return setTodos(state, action.list);
        default:
            break;
    }
}

Component:

import React, { Component } from 'react'
import { bindActionCreators } from 'redux';
import {
    loadTodos,
} from './actions'
import { connect } from 'react-redux'

export class TodoList extends Component {
    render() {
        const me = this;
        const {
            list = [],
        } = me.props;
        return (
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值