以圖克QL Codegen 和 WooGraphQL 擊出地表

在這個教程中, 我們將用 GraphQL- Codegen 和 WPGraphQL/ WooGraphQL 为您的 WordPress 動能的 eCommerce站點建立簡單的產品頁面 。 在 GraphQL- Codegen 相助下, 我們將專注於產生 TypeScript 類型的定義和回應元件以做查詢和變更typescriptreact-typescript插件.

以展示用WooGraphQL取回相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相相關相關相關相關相關相相關相關相關相關相相相相相相相相相相相相相關相關相相相相相相相相相相相相相相相相相相相關相相相相相相相相相相相 在這個教程結束前, 您會更瞭解如何使用 GraphQL- Codegen 和 WPGraphQL/ WooGraphQL来建立高效而灵活的 eCommerce 應用程式 。

先决条件

  • 有 WPGraphQL 和 WooGraphQL 外掛程式的 WordPress站台已安裝并啟用
  • 关于圖克QL和回放的基本理解

第 1 步: 安裝圖克QL- 代碼和需要的外掛程式

首先,我們要安裝 GraphQL- Codegen 和需要的外掛程式:

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

第 二 步 : 配置圖克QL- 代碼

建立一codegen.yml在您的專案根中有以下內容:

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

取代https://your-wordpress-site.com/graphql有您 WordPress站台的 GraphQL 端點的網址 。

第3步: 建立.graphql您的查詢檔案

建立一src/queries目錄和 aGetProduct.graphql它所包含:

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

此查詢可取出產品相關資料, 包括名稱、 描述相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相

第4步: 產生類型Script類型和回應元件

執行以下命令以產生 TypeScript 類型和回應元件:

npx graphql-codegen

有出自graphql.tsx檔案會被定位于./src/generated目錄。

第5步:建立出品頁元件

現在出一款出品頁面元件 用所產生的回應元件和類型:

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

ProductPage元件得到productId取取出產出相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相關相相關相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相GetProduct查询。 它再顯示出產品名、影像、描述和出價,

第 6 步: 在您的應用程式中整合產品Page元件

現在可以匯入并使用ProductPage在您的應用程式中。 傳出productId有理想產品代碼的道具相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相相相接相接相接相相相接相相接相接相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相

正在打包

恭喜! 您已成功使用 GraphQL- Codegen 和 WPGraphQL/ WooGraphQL 为您的 WordPress 動能的 eCommerce 站點建立簡單的產品頁面 。 您已讓您的應用程式更有效率更灵活 。

在相關文章中, 我們將討論建立推車按鈕的新增功能, 包括如何處理已用到購物車的產品。 有收音機了!



Leave a Reply

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