Подтвердить что ты не робот

Реле против Redux против Apollo с GraphQL и React-Native

Я должен начать новый (веб-+ родной) проект (приложение среднего размера) с нуля. Из-за множества инфраструктур JS и реализации там, особенно в последние пару лет, у меня было второе сомнение в моем обычном стеке.

Я использую response + redux на интерфейсе вместе с Node и MongoDB на бэкэнд, обмениваясь через API REST.

Для этого нового проекта я решил пойти с React-Native + React Native для Web + Node + PostgreSQL. Тем не менее, мне интересно, какую структуру я должен использовать для сбора данных и управления состоянием/хранилищем.

До сих пор редукс работал у меня красиво. Однако из-за характера эволюции JS. Я немного скептически отношусь к тому же стек, который я использовал в прошлом.

Каковы плюсы и минусы, если я иду со следующим стеком

React-Native + React-Native-For-Web + Redux + GraphQL + Node + PostgreSQL


React-Native + React-Native-For-Web + Relay + GraphQL + Node + PostgreSQL


React-Native + React-Native-For-Web + Apollo + GraphQL + Node + PostgreSQL

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

4b9b3361

Ответ 1

Я думаю, что если вы исходите из фона React + Redux, то Apollo должен быть для вас!

Примечание. Если вы полный новичок в GraphQL, я рекомендую вам проверить Как GraphQL, где вы найдете обучающие материалы как на Реле и Аполлон.

Несколько фрагментов информации:

  • Реле очень мощное, но также чрезвычайно сложное и имеет заметную кривую обучения.
  • Apollo строит поверх Redux, хотя это не очень важно для вас как разработчика, потому что магазин скрыт от вас. Однако аналогичные понятия, как в Redux, используются, например, для обновления магазина с updateQueries.
  • Это также довольно справедливо для объединить хранилище Apollo с вашим собственным хранилищем Redux, если вы хотите управлять состоянием, отличным от кэшированных данных с сервера
  • С помощью Apollo вы также можете использовать подписки в реальном времени
  • Я бы определенно рекомендовал не использовать Apollo или Relay и работать только с Redux, так как обе структуры выполняют заметную работу с ваших плеч, когда дело доходит до отправки запросов, мутаций, кеширования и обновлений пользовательского интерфейса. Однако вы можете взглянуть на Lokka, если вы ищете более легкий клиент GraphQL.

Взгляните на эту подробную статью, сравнив Relay и Apollo для получения дополнительной информации.

Если вы хотите узнать больше о Relay и Apollo, посетите веб-сайт Как сделать GraphQL.

Кстати, другой вариант для бэкэнд, если вы не хотите его самостоятельно строить, будет Graphcool (отказ от ответственности: я работаю для их:)).

Ответ 2

Обучение Apollo было очень выполнимо с этим курсом, который я сделал на Udemy, GraphQL с React и Apollo

У меня нет опыта работы с Relay, но мне стало сложнее узнать, поэтому, если время является фактором, Apollo может быть хорошим решением:) Удачи.