GraphQL.cz/Fórum/Jak začít s Apollo Client a TypeScript ve svém React projektu?

Jak začít s Apollo Client a TypeScript ve svém React projektu?

Zdravím všechny, chtěl bych se zeptat, jak vlastně začít používat Apollo Client v kombinaci s TypeScriptem v mém React projektu. Mám nějaké zkušenosti s GraphQL, ale Apollo Client mi přijde trochu složitější, zvlášť když se to propojuje s TypeScriptem. Jaké jsou první kroky, které bych měl podniknout? Je nutné mít nějakou speciální konfiguraci pro TypeScript? Jak je to s typováním dotazů a odpovědí? A co třeba použití ApolloProvider? Mám obavy, že se ztratím v typech a že mi něco nefunguje, když budu mít špatně nastavené typy. Také bych rád věděl, jestli někdo má nějakou osvědčenou strukturu složek pro projekt, nebo jak by měl vypadat ten základní setup. Mělo by být něco specifického na pozadí, co musím mít nastavené před tím, než začnu psát komponenty? Ocenil bych i nějaké odkazy na užitečné tutoriály nebo příklady kódu. Vím, že je toho hodně, ale chtěl bych mít jasno v základech, abych se mohl posunout dál. Díky moc za pomoc!

156 slov
1.6 minut čtení
13. 5. 2023
Václav Svoboda

Když chceš začít s Apollo Client a TypeScriptem, tak prvně bys měl nainstalovat potřebný balíčky. Tedy @apollo/client a graphql. Měj na paměti, že pokud používáš TypeScript, je dobré mít i typy pro GraphQL, takže se můžeš podívat na graphql-tools nebo třeba graphql-code-generator, co ti pomůže generovat typy z tvého schématu.

Pak bys měl nastavit ApolloProvider kolem tvé aplikace, což vypadá nějak takhle:

 import \{ ApolloClient, InMemoryCache, ApolloProvider \} from '@apollo/client';

const client = new ApolloClient(\{
  uri: 'tvůj-graphql-endpoint',
  cache: new InMemoryCache(),
\});

function App() \{
  return (
    \<ApolloProvider client=\{client\}\>
      \{/* tvoje komponenty */\}
    \</ApolloProvider\>
  );
\}

Co se týče typování dotazů a odpovědí, můžeš použít gql z Apollo k definici svých GraphQL dotazů a pak využít generované typy z graphql-code-generatoru. Takže místo psaní typů ručně si ušetříš spoustu práce.

Struktura složek záleží na tobě, ale obvykle se dává věci jako komponenty do složky components, dotazy do queries, apod. Taky je fajn mít nějakou složku pro typy. Předtím, než začneš psát komponenty, ujisti se, že máš hotové schéma a endpoint pro GraphQL.

Tady je pár užitečných odkazů:

  • Oficiální dokumentace Apollo Client
  • Návody na youtube k Apollo Client s TypeScriptem
  • Příklad projektu na GitHubu s nastavením Apollo a TypeScript.

Takže to je takový základ, co určitě potřebuješ vědět. Držím palce!

213 slov
2.1 minut čtení
27. 11. 2024
Soňa Moravcová

Pro začátek s Apollo Client a TypeScript je dobré mít nainstalované potřebné balíčky. Takže nejdřív nainstaluj @apollo/client a graphql. Potom je potřeba nastavit ApolloProvider kolem tvé aplikace, aby mohl být Apollo Client dostupný v celém komponentovém stromu. Můžeš to udělat v index.js nebo App.js, něco jako:

 import \{ ApolloClient, InMemoryCache, ApolloProvider \} from '@apollo/client';

const client = new ApolloClient(\{
  uri: 'https://tvuj-api-endpoint/graphql', // zadej správný endpoint
  cache: new InMemoryCache(),
\});

ReactDOM.render(
  \<ApolloProvider client=\{client\}\>
    \<App /\>
  \</ApolloProvider\>,
  document.getElementById('root')
);

Pokud jde o typování, tak je dobrý nápad používat GraphQL Code Generator, který ti vygeneruje typy pro dotazy a odpovědi. Ušetříš si tím spoustu práce s ručním psaním typů. Můžeš nastavit generátor tak, aby bral .graphql soubory a generoval .ts soubory s typy.

Pak můžeš používat hooky jako useQuery a useMutation, ty už automaticky budou mít typy podle toho, co jsi vygeneroval.

Struktura složek záleží na tobě, ale většinou je dobrý mít komponenty v components, dotazy v graphql, a nějakou složku pro typy třeba types.

Je důležitý mít backend nastavený tak, aby odpovídal na GraphQL dotazy – pokud tohle nebude chodit, tak se nikam neposuneš.

A odkazy? Určitě zkus podívat na dokumentaci Apollo Client a třeba i nějaké tutoriály na YouTube. Většinou tam najdeš i příklady kódu. Tak hodně štěstí!

207 slov
2.1 minut čtení
10. 12. 2024
Josef Šimůnek

Takže, s Apollo Client a TypeScriptem to není tak složitý, jak to vypadá. První krok je nainstalovat Apollo Client a potřebný balíček pro GraphQL. Můžeš použít npm nebo yarn:

npm install @apollo/client graphql

Pak, co se týče TypeScriptu, tak si určitě nastav typy pro Apollo. Tím se vyhneš většině problémů s typováním. Potom budeš mít ApolloProvider, což je nutné obalit celou aplikaci, aby ses dostal k Apollo Clientu. Takže něco jako:

 import \{ ApolloProvider \} from '@apollo/client';
 import \{ client \} from './apolloClient'; // Tady máš svůj Apollo Client

function App() \{
    return (
        \<ApolloProvider client=\{client\}\>
            \{/* Tvoje komponenty */\}
        \</ApolloProvider\>
    );
\}

Co se týče typování dotazů a odpovědí, můžeš použít graphql-codegen, což ti generuje typy přímo z tvého GraphQL schématu. To ti hodně ulehčí práci, protože pak máš typy automaticky bez ručního zadávání.

Struktura složek záleží na tobě, ale obvykle se dělí na komponenty, graphql (dotazy a mutace) a apollo (client apod.). Je dobrý mít to nějak přehledně.

Co se týče pozadí, ujisti se, že máš server s GraphQL ready, jinak to nebude fungovat. Koukni na tutoriály jako je ten od Apollo docs nebo nějaké YouTube videa – ty tě provedou základním setupem.

Takže shrnutí: nainstaluj balíčky, nastav ApolloProvider, použij graphql-codegen pro typy a pěkně si strukturovej složky. To by mělo být tak všechno, co potřebuješ na začátek.

241 slov
2.4 minut čtení
26. 10. 2024
Karolína Burianová
GraphQL.cz/Články/GraphQL na frontendu
Integrace Apollo Client s TypeScript v React projektechObjevte, jak efektivně začlenit Apollo Client s TypeScript do vašich React projektů a získat tím vyšší úroveň typové bezpečnosti při práci s GraphQL A...
1000 slov
10 minut čtení
8. 12. 2021
Karolína Černá
Přečíst článek
Podobné otázky