Ответ 1
Начать с короткого введения простыми словами
Характеристики реле GraphQl
- механизм повторной установки объекта
- описание того, как страницы через соединения
- структура вокруг мутаций, чтобы сделать их предсказуемыми
Connections:
- соединение представляет собой набор объектов с метаданными
таких как
edges
,pageInfo
... -
pageInfo будет содержать
hasNextPage
,hasPreviousPage
,startCursor
,endCursor
-
hasNextPage
сообщит нам, есть ли больше доступных ребер, или если weve достигли конца этого соединения.
-
-
Массив записей: ребра
- Границы
- предоставят вам гибкость в использовании ваших данных (node)
- края помогут вам для разбивки на страницы. Существует graphql
GraphQLList
, но без таких функций, как разбиение на страницы, только с массивом объектов (данных)
-
Каждый ребро имеет
- a
node
: запись или данные - a
cursor
: закодированная строка base64, чтобы помочь реле с разбивкой на страницы
- a
https://facebook.github.io/relay/graphql/connections.htm
Node:
- каждый node будет иметь курсор
- вы можете установить количество узлов, которые вам нужно показать с помощью реле
connectionArgs(first, last, after, before)
Реляционная разбивка работает как
-
Выбирает все объекты в коллекции и возвращает срез на основе записей
first/last
x, используемых через connectionArgs -
after/before
используются для указания серверу GraphQL количества требуемых фрагментов (данных) с помощью курсора из node
Есть еще много вещей, которые нужно учитывать, например, nodeDefinitions
, globalFieldId
, nodeInterfaces
https://github.com/graphql/graphql-relay-js#object-identification