Chúng bật tắt một phần truy vấn theo giá trị biến, nên cùng một document phục vụ được nhiều trường hợp.
Điều này quan trọng với persisted query, nơi số lượng document khác nhau cần được giữ ở mức tối thiểu.
query Feed($withAuthor: Boolean!, $skipBody: Boolean!) {
feed {
title
body @skip(if: $skipBody)
author @include(if: $withAuthor) { name }
}
}Chỉ thị chia hai nhóm: nhóm dùng trong truy vấn của client như bật tắt field; và nhóm dùng trong schema như đánh dấu field không dùng nữa hoặc mô tả quy tắc phân quyền, cache.
Chỉ thị tuỳ chỉnh ở schema là công cụ mạnh nhưng dễ bị lạm dụng: đưa quá nhiều logic vào đó khiến hành vi bị giấu khỏi mã và khó theo dõi khi gỡ lỗi.
Một lưu ý khi dùng directive bật tắt: field bị tắt biến mất khỏi phản hồi thay vì trả về null, nên client phải xử lý được cả hai trạng thái, và với normalized cache điều này ảnh hưởng tới việc ghi đè dữ liệu đã có.