Fragment gom một nhóm field dùng lại được.
Trong thực tế, nó cho phép mỗi thành phần giao diện khai báo dữ liệu nó cần, rồi màn hình ghép các fragment lại thành một truy vấn duy nhất.
graphql
fragment PostCard on Post { id title author { name } }
query Feed {
feed { ...PostCard }
search(term: "graphql") {
... on Post { ...PostCard } # inline fragment: only for the matching type
}
}Đây là pattern quan trọng khi ứng dụng lớn dần: sửa một thành phần thì truy vấn tự cập nhật theo, không ai phải nhớ sửa ở màn hình cha.
Dạng thứ hai là fragment theo kiểu, dùng khi field trả về một giao diện hoặc union — client khai báo field riêng cho từng kiểu con và server chỉ trả phần khớp.
Lưu ý: fragment không giảm chi phí ở server. Ghép mười fragment vẫn tạo ra một truy vấn lớn, nên vẫn cần giới hạn Depth và Complexity.