首页 > 解决方案 > 如果所有数据都在 ajax 请求或数据库中,请使用 redux

问题描述

我是新来的反应,特别是在本地,如果我使用 redux 来维护数据存储,如果其中大部分将在本地数据库中,我将陷入困境。目前,我已经考虑过使用 SET_DATA 类型的单个案例的“类别”,并且每次我需要过滤数据时,我都会调用异步操作方法来加载必要的数据并执行减速器的调度。我的代码示例如下(其中 ALL_CATEGORY 和 BY_NAME_CATEGORY 是查询):

类别动作:

import {SET_CATEGORIES} from "../constants/actionTypes";
import {ALL_CATEGORY, BY_NAME_CATEGORY} from "../constants/db/load";
import {dbTransaction} from '../database/dbbase';

export const setCategories = (data) => {
    return {
        type: SET_CATEGORIES,
        payload: data
    };
};

export const allCaregories = () => {
    return (dispatch) => {
        dbTransaction(ALL_CATEGORY)
            .then((data)=> {
                dispatch(setCategories(data));
            }).catch((error)=> console.log('ALL_CATEGORY ERROR'));
    };
};

export const byNameCaregories = () => {
    return (dispatch) => {
        dbTransaction(BY_NAME_CATEGORY)
            .then((data)=> {
                dispatch(setCategories(data));
            }).catch((error)=> console.log('BY_NAME_CATEGORY_CATEGORY ERROR'));
    };
};

de categoryReducer 是:

import {SET_CATEGORIES} from "../constants/actionTypes";

const initialState = [];

const categoryReducer = (state = initialState, action) => {
    switch (action.type){
        case SET_CATEGORIES:{
            return action.payload;
        }
        default:
            return state;
    }
};

export default categoryReducer;

这可行,但我的查询是为什么不选择创建方法来直接调用本地数据库而不使用redux?使用 redux 有什么优势,还是只是将应用程序分层?

如果数据是 100% 在 Web 服务中的相同情况,如果数据总是从外部源获取到 redux,那么使用 redux 的优势是什么

标签: react-nativereduxreact-reduxredux-thunk

解决方案


为什么不选择创建方法直接调用本地数据库而不使用redux呢?

您绝对可以选择不为您的应用程序使用 redux;React/React Native 或任何其他框架对 Redux 没有依赖。Redux 并没有什么特别之处,它实际上只有几十行代码来组织你的应用程序处理状态的方式。在我诚实但有偏见的观点中,如果我认为应用程序可能需要扩展到超过 1,000 多个(非常任意的数量)用户或拥有超过 1 个开发人员,我会使用 Redux。

使用 redux 有什么优势,还是只是将应用程序分层?

除了可维护性和标准化之外,使用 Redux 没有任何优势。您的应用程序现在可能看起来很简单,只需要查询本地数据库,您绝对可以使用自定义方法来更新存储。但是,当您也需要发出 api 请求时会发生什么?或者当您需要添加撤消功能时?新队友能理解你的代码吗?最终,通过使用 redux,您招致技术债务的机会减少了。

如果数据是 100% 在 Web 服务中的相同情况,如果数据总是从外部源获取到 redux,那么使用 redux 的优势是什么

这与查询本地数据库没有什么不同。Redux 并不关心你从哪里获取数据,它只处理 Store 在哪里、何时应该更改以及应该如何更改。


推荐阅读