🫢Fragment trong GraphQL là gì?

https://viblo.asia/p/graphql-fragment-3P0lP13G5ox

1. Fragment trong GraphQL là gì?

  • Trong GraphQL có một khái niệm hay được sử dụng là Fragment. Trong bài viết ngày hôm nay chúng ta hãy cùng đi tìm hiểu khái niệm này là như thế nào nhé.

  • Một GraphQL Fragment là một phần tử có thể tái sử dụng trong GraphQL Query.

  • Trong GraphQL sẽ có những lúc bạn gặp phải những tình huống mà bạn cần phải query các field giống nhau trong các câu query khác nhau. Khi mà bạn nhận thấy các câu query của bạn có nhiều các field bị lặp lại tại nhiều vị trí khác nhau. Bạn có thể tóm chúng lại thành một đơn vị có thể tái sử dụng gọi là Fragment.

  • Một GraphQL Fragment cho phép bạn khai báo một bộ các field và sử dụng chúng trong nhiều câu query. Bạn có thể liên tưởng Fragment trong GraphQL có nét tương đồng như là function trong nhiều ngôn ngữ lập trình. Bạn khai báo function ở một chỗ và bạn gọi đến function ở nhiều chỗ dùng đến nó. Chúng đều là các phần tử tái sử dụng được.

2. Các thành phần của một Fragment

  • Chúng ta hãy đi vào tìm hiểu các thành phần của một Fragment với cấu trúc mẫu bên dưới

    fragment Name on TypeName {
      field1
      field2
      field3
    }
  • Một Fragment sẽ bao gồm 3 thành phần sau

    • Name: Tên riêng biệt cho 1 Fragment (mỗi một Fragment có 1 tên riêng)

    • TypeName: Kiểu của object trong GraphQL Schema mà Fragment được tạo ra từ đó, hay được lồng trong đó

    • Body: Body của Fragment định nghĩa các trường nào sẽ được query (field1, field2, field3)

3. Lợi ích của việc sử dụng GraphQL Fragment

Tại sao Fragment lại là một khái niệm rất "cool" trong GraphQL

  • Thứ nhất, bởi tính tái sử dụng của Fragment: Với Fragment, bạn có thể cấu trúc các câu query của bạn thành các phần tử có thể sử dụng được ở nhiều chỗ mà không cần phải viết lặp đi lặp lại.

  • Caching: GraphQL Client tận dụng các Fragment để cung cấp các option caching. Xem thêm apollographql.com/docs/react/caching/cache-interaction/

Last updated

Was this helpful?