Пример современного кеширования реле
Я хотел бы включить кеширование в моем собственном приложении. Я использую GraphQL с Relay Modern. Я обнаружил, что кеширование не включено по умолчанию в реле современный, но они выставили RelayQueryResponseCache
от relay-runtime
, который мы можем добавить к fetchQuery
функция в нашем API. Я прочитал обсуждение здесь и здесь об этом, но не видел ни одного примера, чтобы начать. Может ли кто-нибудь помочь мне в этом?
РЕДАКТИРОВАТЬ:
Хорошо, я нашел решение. Я думаю, что он пропускает несколько вещей, но пока он служит нашим потребностям. Я заметил, что передача чего-либо в QueryRenderer
в cacheConfig
результаты, передающие это значение в fetchQuery
функционировать в моей среде. Итак, я создал Component
который загружает данные по некоторому отношению и разрешает их в правильные json
структура, запрошенная запросом. Затем я возвращаю это в состояние. Затем я продлил Component
который содержит QueryRenderer
с созданным "кеш-загрузчиком". Теперь когда componentWillMount()
называется прошу закешированные данные. Во время этого я установил this.state.loading = true
так что я могу обрабатывать состояние загрузки. Чтение из БД является асинхронным. Я использую этот класс и в других компонентах. Каждый обрабатывает данные своего кеша. Я просто передаю это QueryRenderer
,
Однако я подумал, что это требует дополнительной логики для каждого Component
который поддерживается этим кэшированием. Вероятно, передача решателя кеша как cacheConfig
и разрешить кэшированные данные непосредственно внутри среды было бы намного чище.