Solusi alternatif berdasarkan swr dan gql-request dapat ditemukan di sini
Hasilkan Kode Apollo untuk SSR NextJS
NextJS baru -baru ini memperkenalkan getServerSideProps yang tidak memungkinkan untuk menggunakan pola HOC yang diadopsi oleh plugin resmi Apollo GraphQL (berdasarkan getInitialProps ). Pada saat yang sama metode SSR yang ditawarkan oleh Apollo Client ( getDataFromTree ) menegakkan aplikasi React untuk merender beberapa kali untuk mengumpulkan dan mengambil semua kueri yang relevan. Dengan mendeklarasikan kueri tingkat atas, kami dapat menghemat waktu rendering dan memberikan pola yang lebih sederhana yang bekerja dengan getServerSideProps . Plugin ini menghasilkan versi typeSafe dari getServerSideProps untuk setiap permintaan server, dan HOC yang sesuai untuk membungkus komponen React yang mengembalikan hasil cache. Keterbatasan/keuntungan dari solusi ini adalah bahwa semua pertanyaan yang tertanam ke dalam komponen reaksi dalam diabaikan, kecuali dicakup oleh cache tingkat atas.
excludePatterns (Default: NULL): RegExp untuk mengecualikan nama operasiexcludePatternsOptions (default: ''): bendera regexp untuk mengecualikan nama operasireactApolloVersion (default: 2): Versi klien ApolloapolloCacheImportFrom (default: apollo-cache-inmemory): ketergantungan apollo-cache-inmemoryapolloImportFrom (Default: Apollo-Client V2 atau @Apollo/Client V3): Ketergantungan Klien ApolloapolloCacheImportFrom (default: apollo-cache-inmemory v2 atau @apollo/klien v3): ketergantungan klien cache apolloapolloStateKey (default: Apollostate): Kunci yang digunakan untuk menyimpan Negara Bagian ApollowithHooks (default: false): Disesuaikan output dengan mengaktifkan/menonaktifkan kait reaksi yang dihasilkan.withHOC (default: true): Disesuaikan output dengan mengaktifkan/menonaktifkan hoc.customImports (default: ''): Deklarasi Impor Kustom LengkapcontextType (default: 'anycontextTypeRequired (default: false): Jika konteks harus diperlukan saat dipanggil dari getServerDepropspre (default: ''): Kode khusus sebelum setiap fungsipost (default: ''): Kode khusus setelah setiap fungsiapolloClientInstanceImport (default: ''): Tambahkan impor instance apolloclientreplaceQuery (default: false): Ganti kata kunci "kueri" di dalam operasi yang dihasilkanreplacePage (Default: False): Ganti kata kunci "halaman" di dalam operasi yang dihasilkanreactImport (Default: Jenis Impor Bereaksi dari 'React';): Kustom React Impor overwrite: true
schema:
- 'https://myschema/graphql'
documents:
- 'src/**/*.graphql'
generates:
src/@types/codegen/graphql.tsx:
plugins:
- 'typescript'
- 'typescript-operations'
- 'typescript-react-apollo'
src/@types/codegen/page.tsx:
config:
documentMode: external
importDocumentNodeExternallyFrom: ./graphql
preset: import-types
presetConfig:
typesPath: ./graphql
plugins:
- ./build/src/index.js
hooks:
afterAllFileWrite:
- prettier --write