Colpire il terreno in esecuzione con il codice GraphQL e WooGraphQL

In questo tutorial, ti guideremo attraverso l’utilizzo di GraphQL-Codegen e WPGraphQL/WoooGraphQL per creare una pagina di prodotto semplice per il tuo sito WordPress-powered eCommerce. Ci concentreremo sulla generazione di definizioni di tipo TypeScript e componenti React per query e mutazioni con l’aiuto di GraphQL-Codegen’stypescriptereact-typescriptplugin.

Creeremo uno studio di caso passo per dimostrare il processo di creazione di una pagina di prodotto che recupera i dati utilizzando WooGraphQL. Alla fine di questo tutorial, avrai una migliore comprensione di come utilizzare GraphQL-Codegen e WPGraphQL/WoooGraphQL per costruire applicazioni eCommerce efficienti e flessibili.

Prerequisiti

  • Un sito WordPress con WPGraphQL e plugin WooGraphQL installati e attivati
  • Una comprensione di base di GraphQL e React

Passo 1: Installare GraphQL-Codegen e plugin richiesti

In primo luogo, installiamo GraphQL-Codegen e i plugin richiesti:

npm install --save-dev @graphql-codegen/cli @graphql-codegen/typescript @graphql-codegen/react-typescript

Fase 2: Configurare GraphQL-Codegen

Creare uncodegen.ymlfile nella radice del progetto con i seguenti contenuti:

schema: 'https://your-wordpress-site.com/graphql'
documents: './src/**/*.graphql'
generates:
  ./src/generated/graphql.tsx:
    plugins:
      - typescript
      - react-typescript

Sostituirehttps://your-wordpress-site.com/graphqlcon l’URL del tuo sito WordPress’s GraphQL endpoint.

Passo 3: Creare un.graphqlfile per la tua richiesta

Creare unsrc/queriesdirectory e unGetProduct.graphqlfile dentro di esso:

query GetProduct($id: ID!) {
  product(id: $id) {
    id
    name
    description
    image {
      sourceUrl
    }
    ... on SimpleProduct {
      isOnSale
      regularPrice
      salePrice
    }
    ... on VariableProduct {
      isOnSale
      regularPrice
      salePrice
    }
  }
}

Questa query fetches i dati del prodotto, compreso il nome, descrizione, immagine, prezzo regolare e prezzo di vendita.

Passo 4: Generare tipi di script e componenti React

Eseguire il comando seguente per generare i tipi TypeScript e i componenti React:

npx graphql-codegen

Il generatographql.tsxil file sarà situato nel./src/generateddirectory.

Passo 5: Creare il componente pagina del prodotto

Ora, creiamo un componente pagina prodotto che utilizza i componenti e i tipi React generati:

import { GetProduct } from '../generated/graphql';
import { useQuery } from '@apollo/client';

function ProductPage({ productId }) {
  const { loading, error, data } = useQuery(GetProduct, {
    variables: { id: productId },
  });

  if (loading) return <p>Loading...</p>;
  if (error) return <p>Error: {error.message}</p>;

  const { product } = data;

  return (
    <div>
      <h1>{product.name}</h1>
      <img src={product.image.sourceUrl} alt={product.name}/>
      <p>{product.description}</p>
      {product.isOnSale ? (
        <p>
          <del>{product.regularPrice}</del> {product.salePrice}
        </p>
      ) : (
        <p>{product.regularPrice}</p
      )}
    </div>
  );
}

TheProductPagecomponente riceve ilproductIdcome prop e utilizza l’usoGià gancio da Apollo Client per recuperare i dati del prodotto utilizzandoGetProductquery. Viene quindi visualizzato il nome del prodotto, l’immagine, la descrizione e il prezzo, insieme al prezzo di vendita se disponibile.

Passo 6: Integrare il componente ProductPage nella tua applicazione

Ora è possibile importare e utilizzareProductPagecomponente nella vostra applicazione. Passare ilproductIdprop con l’ID del prodotto desiderato e il componente visualizzerà i dettagli del prodotto.

Condividi su Google

Congratulazioni! Hai usato con successo GraphQL-Codegen e WPGraphQL/WooGraphQL per creare una pagina di prodotto semplice per il tuo sito di eCommerce alimentato da WordPress. Levando la potenza di GraphQL e TypeScript, hai reso la tua applicazione più efficiente e flessibile.

Nel post successivo, copriremo la creazione del pulsante Aggiungi al carrello e la sua funzionalità, tra cui come gestire i prodotti già nel carrello. Restate in sintonia!



Leave a Reply

Your email address will not be published. Required fields are marked *