يمكن العثور على حل بديل يعتمد على swr و gql-request هنا
قم بإنشاء رمز Apollo لـ NEXTJS SSR
تم تقديم NextJS مؤخرًا getServerSideProps والذي لا يسمح باستخدام النمط المخصص الذي تم تبنيه بواسطة البرنامج المساعد الرسمي Apollo GraphQL (استنادًا إلى getInitialProps ). في الوقت نفسه ، تفرض طريقة SSR التي يقدمها عميل Apollo ( getDataFromTree ) تطبيق React لتقديم عدة مرات من أجل جمع وجلب جميع الاستعلامات ذات الصلة. من خلال الإعلان عن استعلام المستوى الأعلى ، يمكننا توفير وقت العرض وتوفير نمط أبسط يعمل مع getServerSideProps . يقوم هذا المكون الإضافي بإنشاء إصدار Typesafe من getServerSideProps لكل استعلام خادم ، والخصم المقابل لالتفاف مكون React الذي يعيد نتيجة ذاكرة التخزين المؤقت. يتمثل تقييد/ميزة هذا الحل في أن جميع الاستعلامات المضمنة في مكونات React الداخلية يتم تجاهلها ، ما لم يتم تغطيتها بواسطة ذاكرة التخزين المؤقت من المستوى الأعلى.
excludePatterns (افتراضي: فارغ): regexp لاستبعاد أسماء العملياتexcludePatternsOptions (الافتراضي: ''): regexp أعلام لاستبعاد أسماء العملياتreactApolloVersion (افتراضي: 2): إصدار عميل أبولوapolloCacheImportFrom (افتراضي: Apollo-cache-Inmemory): Apollo-cache inmemory التبعيةapolloImportFrom (افتراضي: Apollo-Client V2 أو @Apollo/Client V3): Apollo Client TremencyapolloCacheImportFrom (افتراضي: Apollo-cache-Inmemory V2 أو @Apollo/Client V3): Apollo Cache Client DependencyapolloStateKey (افتراضي: Apolstate): مفتاح يستخدم لتخزين ولاية أبولوwithHooks (افتراضي: خطأ): تخصيص الإخراج عن طريق تمكين/تعطيل السنانير رد الفعل التي تم إنشاؤها.withHOC (افتراضي: صواب): تخصيص الإخراج عن طريق تمكين/تعطيل المخصص.customImports (افتراضي: ''): إعلان استيراد مخصص كاملcontextType (افتراضي: "أي"): تم تمرير نوع contex إلى getApolloclientcontextTypeRequired (افتراضي: خطأ): إذا كان يجب أن يكون السياق مطلوبًا عند استدعاؤه من getServersIdePropspre (افتراضي: ''): رمز مخصص قبل كل وظيفةpost (افتراضي: ''): رمز مخصص بعد كل وظيفةapolloClientInstanceImport (افتراضي: ''): أضف استيراد مثيل ApolloclientreplaceQuery (افتراضي: خطأ): استبدل كلمة "الاستعلام" داخل العمليات التي تم إنشاؤهاreplacePage (افتراضي: خطأ): استبدال كلمة "الصفحة" داخل العمليات التي تم إنشاؤهاreactImport (افتراضي: رد الفعل من نوع الاستيراد من "React" ؛): استيراد رد الفعل المخصص 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