Drupal 8 + React. Съединени (без глава) срещу прогресивно отделени

Drupal 8 + React. Съединени (без глава) срещу прогресивно отделени

Времето минаваше и гледах събития, презентации, видеоклипове на Drupal и четях статии в блоговете на общността на Drupal и забелязах, че ключови думи като „отделени“, „без глава“, „прогресивно отделени“ започнаха да превземат тази част от медиите. Видях, че най-големите компании на Drupal започнаха да споделят историите си за успех на своите клиенти относно разединените уебсайтове, предимствата и предизвикателствата на Drupal, които са имали, докато работят върху тях.

Не исках да пропускам този хип-влак, затова започнах да научавам за възможностите за комбиниране на най-мощната система за управление на съдържанието с една от най-популярните javascript библиотеки.

В тази статия ще споделя моите знания, които получих по време на това пътуване.

Бързо въведение

Нека започнем отначало с бързо запознаване с тези два страхотни инструмента.

Drupal е система за управление на съдържанието (CMS) с мощен API за уеб услуги.

React е библиотека с JavaScript, която улеснява създаването на интерактивни потребителски интерфейси.

Съединени (без глава) срещу прогресивно отделени

По пътя разбрах, че има два начина да използваме Drupal 8 и React заедно. Ето кратко въведение към тези два метода на отделяне:

  • Приложението „Съединено (без глава)“ взаимодейства с Drupal само чрез API на уеб услуги, за да зарежда съдържание или да удостоверява потребителите.

С други думи, това е самостоятелно приложение React, което използва крайни точки за API на Drupal 8 services.

  • „Прогресивно отделено“ приложение използва Drupal тема, оформление (блокове, региони и т.н.), изгледи, дисплеи и т.н.

Това е обикновена инсталация на Drupal 8 с някои отделени компоненти (като списък със статии, формуляри за изпращане или друга по-сложна част от уебсайта).

Съединен (без глава)

Нека се гмурнем по-дълбоко и да разгледаме още ключови моменти относно отделения (без глава) подход.

  • Този подход работи добре за екипите за развитие, които вече имат известни знания за това как работи React.
  • Разработчиците от предния край имат пълен контрол над оформлението, но администраторът на сайта не може да използва Drupal региони, не може да постави блок (или да го пренареди) в регион.
  • Предните разработчици могат да използват инструментите, които искат да използват, вместо да се научат как да работят в контекста на тема Drupal.

Прогресивно отделен

Някои ключови моменти за подхода „постепенно отделен“:

  • Няма нужда да се притеснявате да правите рендериране от страна на сървъра (най-вече се прави по SEO причини).
  • Можете да използвате мощни вградени инструменти на Drupal за оформление, изгледи, дисплеи и т.н.
  • В случай, че искате да използвате всички CRUD действия (Създаване, четене, актуализиране и изтриване), можете да използвате CSRF секер маркер за удостоверяване (в друг случай ще трябва да настроите „OAuth“ или подобна рамка на разрешение).

Кой метод е по-добър за вашия проект?

Не е трудно да забележите, че и двата метода имат своите предимства и недостатъци, но трябва да знаете, че ако искате да избегнете неща като свръх инженерство, трябва да вземете решението в началото. Това решение трябва да бъде индивидуализирано за всеки проект, но тези въпроси могат да ви помогнат при вземането на решения.

Първият много прост въпрос може да бъде:

  • Това е вашият съществуващ проект Drupal?

Ако отговорът ви е „да“, тогава вероятно трябва да се придържате към подхода „прогресивно отделяне“ и да използвате React само за някои компоненти на уебсайта, без да казвате „не“ на някои от вградените инструменти на Drupal (оформления, изгледи, дисплеи и т.н.) ,

Ако отговорът ви е „не“, тогава трябва да отговорите на по-важни въпроси:

  • Изискват ли се много предните изисквания? (те изобщо не искат да учат Drupal), а екипът ви за разработка има опит с Drupal?
  • Вашият сайт има множество интеграции (някои данни от хранилища на съдържанието, системи за управление на медии, социални медии и т.н.)?
  • Има ли вашият сайт повече от един потребител (приложение, което използва съдържанието, предоставено от сайта) и това съдържание трябва да бъде публикувано едновременно?
  • Сигурни ли сте, че вашият сайт не изисква вградени инструменти на Drupal като оформления, изгледи, дисплеи и т.н.?

Ако повечето отговори са "да" и смятате, че вие ​​или вашият екип имате достатъчно умения, тогава ...

Нека да отделим!