Когда использовать Redux для извлечения данных из вызова API - PullRequest
1 голос
/ 26 апреля 2020

Я принял Redux в своем проекте для контроля состояния, а также Ax ios для извлечения api в действии.

Но мне интересно, когда я должен получать данные, используя вызов API через Redux (в действии), когда я должен напрямую сделать вызов API в компоненте.

Это зависит от того, нужно ли мне хранить данные ответов в Redux (для совместного использования между различными компонентами)? Могу ли я узнать какие-либо рекомендации для этого?

API-вызов через Redux

export const fetchOptions = () => {
  return async (dispatch, getState) => {

    const request = await client.query({
      query: gqlQueries.getQuery,
    });
    const options = await request;


    dispatch({
      type: types.FETCH_DATA_END,
      options: options
    });
  }
}

Непосредственный вызов API-интерфейса в компоненте:

const axios = require("axios");

useEffect(() => {
    axios({
        url: 'http://localhost/graphql',
        method: 'post',
        data: {
        query: `
            query PostsForAuthor {
            author(id: 1) {
                firstName
                posts {
                    title
                    votes
                }
                }
            }
            `
        }
    }).then((result) => {
        console.log(result.data)
    });

}, []);

1 Ответ

2 голосов
/ 26 апреля 2020

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...