@Vadim1899

Что лучше, изолировать функции или сократить код?

привет!
есть функция, в которой из redux стора получаются данные. Далее в этой функции вызывается другая функция, которой также нужны некоторые данные из redux стора. Собственно вопрос, как сделать лучше:
1. Из родительской функции передать в потомка все данные в качестве аргументов функции
const parentFunc = () => (dispatch) => {
    const userId = store.getState().user.id;
    const themes = store.getState().themes.list;
    const activeTheme = store.getState().user.theme;
    const userName = store.getState().users.theme.find(...);

    // ..... код родительской функции

    dispatch(innerFunc(userId, themes, activeTheme, userName));
};

const innerFunc = (userId, themes, activeTheme, userName) => (dispatch) => {
    // ..... код функции потомка
};

2. В потомке также получать данные из редакс стора (store.getState().user.userId)
const parentFunc = () => (dispatch) => {
    const userId = store.getState().user.id;
    const themes = store.getState().themes.list;
    const activeTheme = store.getState().user.theme;
    const userName = store.getState().users.theme.find(...);

    // ..... код родительской функции

    dispatch(innerFunc());
};

const innerFunc = () => (dispatch) => {
    const userId = store.getState().user.id;
    const themes = store.getState().themes.list;
    const activeTheme = store.getState().user.theme;
    const userName = store.getState().users.theme.find(...);

    // ..... код функции потомка
};


При втором варианте функция-потомок более изолированная, ее можно будет вызывать не только из контекста родительской функции. Но смущает что логика получения данных из стора дублируется.

Во втором варианте функция потомок привязана с родителю. Если захочу использовать функцию в другом месте, то в нем все равно надо будет запрашивать из стора нужные данные и потом передавать в функцию.

Вопросов несколько:
1. Есть ли принципиальные отличия между этими реализациями?
2. Будут ли изменения в производительности от дублирования кода для получения данных из стора?
  • Вопрос задан
  • 80 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы