Golpear el terreno corriendo con grafQL Codegen y WooGraphQL

En este tutorial, le guiaremos a través de GraphQL-Codegen y WPGraphQL/WooGraphQL para crear una página de producto simple para su sitio de eCommerce impulsado por WordPress. Nos enfocaremos en generar definiciones de tipo TipoScript y Reactar componentes para consultas y mutaciones con la ayuda de GraphQL-Codegentypescriptyreact-typescriptplugins.

Crearemos un estudio de caso paso a paso para demostrar el proceso de crear una página de producto que recupera datos usando WooGraphQL. Al final de este tutorial, usted tendrá una mejor comprensión de cómo utilizar GraphQL-Codegen y WPGraphQL/WooGraphQL para construir aplicaciones de eCommerce eficientes y flexibles.

Prerrequisitos

  • Un sitio de WordPress con plugins WPGraphQL y WooGraphQL instalados y activados
  • Una comprensión básica de GraphQL y React

Paso 1: Instalar GraphQL-Codegen y los plugins necesarios

Primero, vamos a instalar GraphQL-Codegen y los plugins necesarios:

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

Paso 2: Configure GraphQL-Codegen

Crear uncodegen.ymlarchivo en la raíz de su proyecto con el siguiente contenido:

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

Reemplazamientohttps://your-wordpress-site.com/graphqlcon la URL del punto final GraphQL de tu sitio WordPress.

Paso 3: Crear un.graphqlarchivo para su consulta

Crear unsrc/queriesdirectorio y unGetProduct.graphqlarchivo dentro de él:

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

Esta consulta incluye los datos del producto, incluyendo el nombre, descripción, imagen, precio regular y precio de venta.

Paso 4: Generar tipos de script y Reactar componentes

Ejecute el siguiente comando para generar los tipos de TipoScript y Reaccionar componentes:

npx graphql-codegen

El generadographql.tsxarchivo se ubicará en./src/generateddirectorio.

Paso 5: Crear el componente de página de producto

Ahora, vamos a crear un componente de página de producto que utiliza los componentes y tipos de React generados:

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>
  );
}

ElProductPagecomponente recibe elproductIdcomo prop y utiliza el gancho useQuery de Apollo Client para buscar los datos del producto utilizando elGetProductconsulta. A continuación, muestra el nombre del producto, imagen, descripción y precio, junto con el precio de venta si está disponible.

Paso 6: Integrar el componente ProductPage en su aplicación

Ahora usted puede importar y utilizar elProductPagecomponente en su aplicación. Pase elproductIdPropietario con el ID del producto deseado, y el componente mostrará los detalles del producto.

Subiendo

¡Enhorabuena! Usted ha utilizado con éxito GraphQL-Codegen y WPGraphQL/WooGraphQL para crear una página de producto simple para su sitio de eCommerce impulsado por WordPress. Al aprovechar el poder de GraphQL y TypeScript, usted ha hecho su aplicación más eficiente y flexible.

En el próximo post, cubriremos la creación del botón Añadir al carrito y su funcionalidad, incluyendo cómo manejar productos ya en el carrito de compras. ¡No te muevas!



Leave a Reply

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