Drupal 8 + reaktsiya. Prougressiv Decoupled va boshqalar

Drupal 8 + reaktsiya. Prougressiv Decoupled va boshqalar

Vaqt o'tib, men drupal voqealarni, prezentatsiyalarni, videolarni tomosha qilib, Drupal hamjamiyatining bloglarini o'qiyotgan edim va "parchalanib ketgan", "boshsiz", "asta-sekin ajratilgan" kabi kalit so'zlar ommaviy axborot vositalarining ushbu qismini egallashni boshlaganini payqadim. Drupalning eng yirik kompaniyalari o'zlarining mijozlariga Drupal veb-saytlarini ochish, ularning afzalliklari va ular ustida ishlayotganda qanday qiyinchiliklarga duch kelgani to'g'risida erishgan yutuqlari bilan bo'lishishni boshladilar.

Men ushbu hyp-poezdni o'tkazib yubormoqchi emas edim, shuning uchun men eng kuchli javascript kutubxonalari bilan eng kuchli tarkibni boshqarish tizimini birlashtirish imkoniyatlari haqida bilishni boshladim.

Ushbu maqolada men ushbu sayohat davomida olgan bilimlarim bilan bo'lishaman.

Tez kirish

Keling, boshidan bu ikkita ajoyib vositani qisqacha tanishtirishdan boshlaylik.

Drupal - bu kuchli veb-xizmatlar APIsi bo'lgan tarkibni boshqarish tizimi (CMS).

React - bu interfaol foydalanuvchi interfeyslarini yaratishni osonlashtiradigan JavaScript kutubxonasidir.

Prougressiv Decoupled va boshqalar

Yo'lda, Drupal 8-dan foydalanish va birgalikda reaktsiyaning ikkita usuli borligini bilib oldim. Mana bu dekouplingning ikkita usuliga qisqacha kirish:

  • "Ajralgan (boshsiz)" ilova faqatgina Drupal bilan veb-xizmatlar API orqali tarkibni yuklash yoki foydalanuvchilarni tasdiqlash uchun o'zaro ishlaydi.

Boshqacha qilib aytganda, bu Drupal 8 xizmatlari API-ning so'nggi nuqtalaridan foydalanadigan React mustaqil dasturi.

  • "Progressiv decoupled" dasturida Drupal mavzusi, tuzilishi (bloklar, mintaqalar va boshqalar), ko'rinishlar, displeylar va boshqalardan foydalaniladi.

Bu muntazam ravishda Drupal 8-ning o'rnatilishi bo'lib, u ba'zi bir qismlarga ajratilgan (maqolalar ro'yxati, maqolalar ro'yxati yoki veb-saytning boshqa murakkab qismlari kabi).

Ajratilgan (boshsiz)

Keling, chuqurroq sho'ng'in qilaylik va dekoltsiyalangan (boshsiz) yondashuv haqida ko'proq muhim fikrlarni ko'rib chiqaylik.

  • Ushbu yondashuv React qanday ishlashi haqida ba'zi bilimlarga ega bo'lgan rivojlanish guruhlari uchun juda yaxshi ishlaydi.
  • Front-end ishlab chiqaruvchilari sxemani to'liq nazorat qilishadi, ammo sayt ma'muri Drupal mintaqalaridan foydalana olmaydi, blokni mintaqaga joylashtira olmaydi (yoki uni qayta tashkil eta olmaydi).
  • Dastlabki dasturchilar Drupal mavzusi doirasida qanday ishlashni o'rganish o'rniga o'zlari xohlagan vositalardan foydalanishlari mumkin.

Progressiv Decoupled

"Sekin-asta ajratilgan" yondashuv haqida ba'zi muhim fikrlar:

  • Server tomonidan ko'rsatiladigan xizmatni amalga oshirish haqida tashvishlanishning hojati yo'q (asosan SEO sabablariga ko'ra amalga oshiriladi).
  • Drupal-ning joylashtirilishi, ko'rinishi, displeyi va boshqalar uchun kuchli o'rnatilgan vositalardan foydalanishingiz mumkin.
  • Agar siz CRUD-ning barcha harakatlarini ishlatmoqchi bo'lsangiz (Yaratish, O'qish, Yangilash va O'chirish), autentifikatsiya uchun CSRF-dan foydalanishingiz mumkin (boshqa holatda "OAuth" yoki shunga o'xshash avtorizatsiya doirasini o'rnatishingiz kerak).

Loyihangiz uchun qaysi usul yaxshiroq?

Ikkala usul ham o'zlarining afzalliklari va kamchiliklariga ega ekanligini payqash qiyin emas, lekin shuni bilishingiz kerakki, agar siz haddan tashqari muhandislik kabi ishlardan qochmoqchi bo'lsangiz, dastlab qaror qabul qilishingiz kerak. Ushbu qarorni har bir loyiha uchun alohida belgilash kerak, ammo bu savollar qaror qabul qilishda sizga yordam berishi mumkin.

Birinchi juda oddiy savol bo'lishi mumkin:

  • Bu sizning mavjud Drupal loyihangizmi?

Agar sizning javobingiz "ha" bo'lsa, unda siz "Progressively decoupled" yondashuviga rioya qilishingiz va ba'zi veb-sayt tarkibiy qismlari uchun React-dan Drupal o'rnatilgan ba'zi vositalariga (tartib, ko'rinishlar, displeylar va hokazolar) "yo'q" demasdan foydalanishingiz kerak. .

Agar sizning javobingiz «yo'q» bo'lsa, unda siz muhim savollarga javob berishingiz kerak:

  • Front-end talablari juda qattiqmi? (ular umuman Drupalni o'rganishni xohlamaydilar) va sizning orqa tarafdagi rivojlanish guruhingiz Drupal tajribasiga egami?
  • Sizning saytingizda bir nechta integratsiyalar mavjudmi (tarkibiy omborlar, ba'zi ma'lumotlarni boshqarish tizimlari, ijtimoiy media va boshqalar)?
  • Sizning saytingizda bittadan ortiq iste'molchi bormi (sayt taqdim etgan tarkibni ishlatadigan dastur) va ushbu tarkib bir vaqtning o'zida nashr etilishi kerakmi?
  • Ishonasizmi, saytingiz Drupal-ning ichki tuzilishi, ko'rinishi, displeyi va boshqalar kabi vositalarini talab qilmaydi?

Agar javoblarning ko'pi "ha" bo'lsa va siz yoki o'zingizning jamoangiz etarlicha ko'nikmalarga ega deb o'ylasangiz, unda ...

Keling, hal qilaylik!