Dabaru biyu: offset-based (limit/offset) da cursor-based. GraphQL ba shi da pagination da aka gina ciki, amma ma'aunin al'umma shi ne ƙayyadaddar Relay Connection, wadda take tsara cursor pagination bisa tsari.
Dabaru biyu: offset-based (limit/offset) da cursor-based. GraphQL ba shi da pagination da aka gina ciki, amma ma'aunin al'umma shi ne ƙayyadaddar Relay Connection, wadda take tsara cursor pagination bisa tsari.
items(limit: 10, offset: 20)) mai sauƙi ne amma yana karyewa a kan bayanai masu rai: idan aka saka layi yayin da mai amfani ke shafewa, abubuwa suna motsawa kuma ka ga kwafi ko gibi. Yana kuma zama sannu-sannu a offset masu zurfi (DB har yanzu tana bincika layukan da aka tsallake).Connection yana nannaɗe jerin cikin edges (kowanne da cursor da node) tare da pageInfo:
type Query {
posts(first: Int!, after: String): PostConnection! # first = page size, after = cursor
}
type PostConnection {
edges: [PostEdge!]!
pageInfo: PageInfo!
}
type PostEdge {
cursor: String! # opaque token for THIS node's position
node: Post! # the actual item
}
type PageInfo {
endCursor: String # feed this back as 'after' for the next page
hasNextPage: Boolean! # so the client knows when to stop
}
// resolver: fetch ONE extra row to compute hasNextPage cheaply
const rows = await db.posts.find({ after: args.after, limit: args.first + 1 });
const hasNextPage = rows.length > args.first;
const page = rows.slice(0, args.first);
return {
edges: page.map((p) => ({ node: p, cursor: encodeCursor(p.id) })),
pageInfo: { endCursor: page.at(-1) && encodeCursor(page.at(-1).id), hasNextPage },
};
Cursor ɗin opaque ne — galibi base64 na sort key — don haka abokan ciniki suna ɗaukarsa a matsayin token, ba lamba ba.
Zaɓar offset ko cursor yana nuna cewa ka fahimci daidaituwa a ƙarƙashin rubuce-rubuce na lokaci guda da aikin shafuka masu zurfi. Sanin siffar Relay connection yana da muhimmanci saboda Apollo/Relay clients suna da sarrafa cache da aka gina ciki dominsa.
Ɗakin karatu na tambayoyin hira na IT tare da amsoshi cikakke — daga Junior zuwa Senior.
Ba da Gudummawa