graphql-apollo-client-usage

graphql-apollo-client-usage is a cursor rule for Cursor from holtwood/awesome-cursorrules-zh. It costs 0 tokens per session (559 once invoked), scanned A, original, MIT.

A usage guide for fetching, changing, and subscribing to GraphQL data with Apollo Client in React. It covers loading and error states, cache updates, refetching, and reusable GraphQL fragments.

In plain words
What is it for?
Use it when writing useQuery, useMutation, or useSubscription code, updating cached data after changes, and sharing fields with fragments.
Why use it?
It helps keep the interface synchronized with the server and avoids outdated query patterns or duplicated field definitions.

Cursor rule for Cursor

Written for Cursor: a Cursor rule (.mdc).

Good fit Use it when writing useQuery, useMutation, or useSubscription code, updating cached data after changes, and sharing fields with fragments.

Compare 6 cursor rules from other repositories ↓
Install with agentmods
npx agentmods add rules/holtwood/awesome-cursorrules-zh/graphql-apollo-client-usage
Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Clone the repo
git clone --depth 1 https://github.com/holtwood/awesome-cursorrules-zh

Made for: Cursor.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for graphql-apollo-client-usage

README.md
[![agentmods](https://agentmods.dev/badge/rules/holtwood/awesome-cursorrules-zh/graphql-apollo-client-usage.svg)](https://agentmods.dev/rules/holtwood/awesome-cursorrules-zh/graphql-apollo-client-usage)
Your own site
<a href="https://agentmods.dev/rules/holtwood/awesome-cursorrules-zh/graphql-apollo-client-usage"><img src="https://agentmods.dev/badge/rules/holtwood/awesome-cursorrules-zh/graphql-apollo-client-usage.svg" alt="Measured on agentmods" height="20"></a>
Per session 0 Nothing until a file matches its globs; then the whole rule loads.
When invoked 559 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00000 $0.00559
Opus 5 $0.00000 $0.00280
Sonnet 5 $0.00000 $0.00112
Haiku 4.5 $0.00000 $0.00056

Measured 3d ago against content hash e91d648aa195, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-07, from the pricing page.

Security

Grade A, and why

graphql-apollo-client-usage scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 3d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

docs/rules/frontend/react/apollo-graphql/graphql-apollo-client-usage.mdc · 63 lines

What it actually says

  • 使用 Apollo Client 进行状态管理和数据获取
    • 利用 useQuery Hook 进行数据查询,处理加载状态、错误和数据。
    • 使用 useMutation Hook 执行数据修改操作,并在成功后更新缓存或重新获取相关数据。
    • 结合 useSubscription Hook 实现实时数据更新。
  • 实现查询组件进行数据获取
    • 推荐使用基于 Hook 的方式(如 useQuery)而非旧版 Query 组件,以更好地利用 React Hooks 的特性。
    • 示例:
      import { useQuery, gql } from '@apollo/client';
      
      const GET_TODOS = gql`
        query GetTodos {
          todos {
            id
            text
            completed
          }
        }
      `;
      
      function TodosList() {
        const { loading, error, data } = useQuery(GET_TODOS);
      
        if (loading) return <p>Loading...</p>;
        if (error) return <p>Error :({error.message}</p>;
      
        return (
          <ul>
            {data.todos.map(({ id, text, completed }) => (
              <li key={id} style={{ textDecoration: completed ? 'line-through' : 'none' }}>
                {text}
              </li>
            ))}
          </ul>
        );
      }
      
  • 利用变更操作进行数据修改
    • 使用 useMutation Hook 发送变更请求,并利用 update 函数或 refetchQueries 选项在变更成功后更新 Apollo 缓存,确保 UI 状态与后端数据同步。
  • 使用片段创建可重用的查询部分
    • 定义 GraphQL 片段(Fragments)来封装可重用的字段集,提高查询的可维护性和复用性。
    • 示例:
      fragment UserFields on User {
        id
        name
        email
      }
      
      query GetUserDetails($id: ID!) {
        user(id: $id) {
          ...UserFields
        }
      }
      
  • 实现适当的错误处理和加载状态
    • 在组件中处理 loadingerror 状态,向用户提供友好的加载指示和错误反馈。
    • 可以结合 ErrorLink 或自定义错误边界(Error Boundaries)来集中处理 GraphQL 错误。
Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 3d ago First seen · 63 lines · 0 tokens per session scan A e91d648aa195

Subscribe to this mod's changes

graphql-apollo-client-usage is a cursor rule published in the GitHub repository holtwood/awesome-cursorrules-zh (232 stars, last pushed 1mo ago), licensed MIT. It costs nothing until one of its globs matches a file; then it loads 559 tokens. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-03.