Я новичок, чтобы реагировать, особенно на нативном, и я нахожусь в дилемме, если я использую избыточность для поддержания хранилища данных, если большинство из них будет в локальной базе данных.В настоящий момент я думал о наличии «категорий» с одним случаем, который бы относился к типу SET_DATA, и каждый раз, когда мне нужно отфильтровать данные, я вызываю методы асинхронных действий, которые загружают необходимые данные и выполняют диспетчеризацию для редуктора.Пример моего кода выглядит следующим образом (где ALL_CATEGORY и BY_NAME_CATEGORY являются запросами):
categoryAction:
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;
Это работает, но мой вопрос, почему бы не выбрать создание методов для непосредственного вызова локальной базы данных без использования приставки?Есть ли какое-либо преимущество при использовании избыточности или это просто разделение приложения по слоям?
Тот же самый случай, если данные были на 100% в веб-сервисе, что было бы преимуществом использования избыточности, если данные всегда будутполученный из внешнего источника для редукса