Các khung phát triển JavaScript: Angular, React, Vue, Gatsby, Polymer, & Cái nhìn thoáng qua

Sau khi được Dries Buytaert đề xuất ban đầu vào năm 2017 tại DrupalCon, Vienna, các thành viên cộng đồng hiện ước tính rằng năm 2020 sẽ là năm khi Drupal chính thức bổ sung React làm tùy chọn chủ đề cho phân phối CMS cốt lõi. Drupal 7 chủ yếu sử dụng PHPTemplate làm công cụ chủ đề, trong khi Drupal 8 thực hiện Twig & Khung Symfony2. Mặc dù cả hai chủ đề nguồn mở và được cấp phép chuyên nghiệp cho Drupal 8 đều thành công trên Twig / Symfony2, có một lĩnh vực phát triển đang phát triển tiến lên tách rời hoặc “không đầu” phương pháp luận dựa trên Node.js. Điều không rõ ràng là mức độ hỗ trợ cần thiết cho Node.js trong tương lai của dịch vụ lưu trữ web bán lẻ cho Drupal, với một số trang web chọn cách tiếp cận tách rời hoặc tách rời hoàn toàn như là phương án thay thế cho cài đặt truyền thống nguyên khối. Hiện tại có các yêu cầu cài đặt khác nhau để chạy Drupal 8 trên NGINX so với Apache, trong khi Node.js tương thích như nhau với cả hai định dạng máy chủ để xây dựng các giải pháp Drupal tách rời mới.


Các khung phát triển JavaScript: Angular, React, Vue, Gatsby, Polymer, & Glimmer

Phản ứng trong Drupal Core: Khung phát triển JavaScript – Vue, Gatsby, & Ember

Quyết định áp dụng khung JavaScript cho các chủ đề Drupal đã được xem xét trong nhiều năm, bị cản trở bởi sự phân mảnh trong lĩnh vực phát triển. Yêu thích ban đầu là Angular & Ember, trong khi React, Vue, & Gatsby hiện đang là lựa chọn phổ biến. JavaScript & Lĩnh vực phát triển Node.js đang thay đổi nhanh chóng & đổi mới, đòi hỏi kiến ​​thức chuyên ngành cho lập trình viên. Như Buytaert đã viết:

"Hầu hết mọi người dường như muốn có một cách để soạn các giao diện và tương tác với các thành phần có thể sử dụng lại (ví dụ: các thư viện như React, Vue, Polymer và Glimmer) thay vì sử dụng một khung công tác tập trung vào các luồng công việc MV * (ví dụ như các khung như Angular và Ember)."

Sự quan tâm đến các giải pháp Drupal tách rời tăng lên khi lõi D8 thay đổi từ việc sử dụng PHPTemplate làm công cụ mẫu chủ đề sang Twig / Symfony2. Nhiều nhà phát triển chuyên nghiệp với các trang web Drupal 7 rất phức tạp để chuyển đổi hoặc nâng cấp nhận thấy việc áp dụng cách tiếp cận JavaScript dễ dàng hơn với Angular, React, Vue, Gatsby, v.v. so với việc viết lại các chủ đề PHP bằng Twig / Symfony2. Trong một số cách, điều này cũng có thể bị ảnh hưởng bởi hiệu suất máy chủ web & tốc độ tải trang cho Drupal 8 chạy với Node.js / NGINX theo cách tiếp cận tách rời, cũng như những tiến bộ mới trong lưu trữ đám mây như container, Kubernetes, & giải pháp máy chủ web đàn hồi cụm với cân bằng tải tích hợp.

Phản ứng trong Drupal Core: Khung phát triển JavaScript - Vue, Gatsby và Ember

Phát triển JavaScript góc cạnh: "Tìm hiểu một cách để xây dựng các ứng dụng với Angular và sử dụng lại mã và khả năng của bạn để xây dựng các ứng dụng cho bất kỳ mục tiêu triển khai nào. Đối với web, web di động, điện thoại di động gốc và máy tính để bàn bản địa. Đạt được tốc độ tối đa có thể có trên Nền tảng Web ngay hôm nay và đưa nó đi xa hơn, thông qua Công nhân web và kết xuất phía máy chủ. Angular giúp bạn kiểm soát khả năng mở rộng."Tìm hiểu thêm về góc.

Drupal tách rời: Sử dụng React, Angular, Vue, Ember, & Gatsby cho phát triển chủ đề

React, Angular, Vue, v.v … đều có thể được sử dụng với Drupal mà không có Node.js, tuy nhiên các mô-đun tích hợp cho các khung JavaScript này yêu cầu NPM hoặc Sợi được cài đặt trên máy chủ web để hoạt động. Điều này có thể tạo ra sự không tương thích với một số gói lưu trữ web được thiết kế dành riêng cho hỗ trợ PHP. Bạn nên nâng cấp lên gói VPS để xây dựng môi trường máy chủ web tùy chỉnh cho Drupal 8 & Phát triển Node.js.

API RESTful & Drupal 8: Sử dụng React so với các MVC MVC thông thường

“Trong phiên thực hành này, bạn sẽ tìm hiểu cách xây dựng một trang web tách rời bằng hệ sinh thái React ở mặt trước và Drupal 8 làm hệ thống quản lý nội dung và nguồn dữ liệu.” (DrupalCon Dublin 2016)

Hành trình chính:

  • Cách định cấu hình Drupal để hiển thị tài nguyên RESTful bằng Drupal 8
  • Kích hoạt hỗ trợ CORS cho các miền / cổng chạy ứng dụng React của chúng tôi
  • Xác thực các yêu cầu bằng JWT
  • Sử dụng dữ liệu trên front-end bằng Redux store
  • Truyền dữ liệu từ Redux store Các thành phần React

Drupal tách rời: Sử dụng React, Angular, Vue, Ember và Gatsby để phát triển chủ đề

CMS tách riêng Pantheon: ‘Drupal và WordPress đều theo truyền thống “nguyên khối” CMS, với trình bày nướng qua chủ đề. Tuy nhiên, do nhu cầu linh hoạt và tự do hơn, nhiều nhà phát triển đã bắt đầu tách rời CMS, sử dụng nó để quản lý nội dung, biên tập và công cụ quản trị, đồng thời triển khai một thành phần lối vào riêng dành cho trải nghiệm người dùng giao tiếp với CMS thông qua API web.’ Tìm hiểu thêm về Kiến trúc CMS tách rời.

Drupal 8 & JavaScript – Tài nguyên dành cho nhà phát triển web:

Có một thư viện JavaScript lớn & Tài nguyên phát triển Drupal có sẵn trực tuyến. Các trang này cung cấp một tổng quan tốt để sử dụng React với Drupal 8:

  • Giới thiệu về React và Drupal
  • 8 điều cần biết về phản ứng đối với các Drupal Devs
  • Giới thiệu về Drupal cho các nhà phát triển React

Xem xét các yêu cầu lưu trữ web khác nhau cho Drupal 8 + Node.js và những lợi thế của React trong lõi. Các mô-đun Drupal 8 này cung cấp chức năng tích hợp:

  • Gói Webpack
  • Webpack Vue.js
  • Phản ứng Webpack
  • jDrupal (cho góc)

Nếu sự phụ thuộc cho React trong Drupal 8 bao gồm NPM, tất cả các máy chủ web được chia sẻ có thể không hỗ trợ nó. Tìm hiểu thêm về NPM & Tích hợp Drupal 8:

  • NPM
  • npm.js

NPM yêu cầu Node.js phải được cài đặt trên máy chủ web, nhưng không phải là một phần của gói Node.js. Nhiều máy chủ web Linux được chia sẻ không hỗ trợ điều này tại thời điểm hiện tại, yêu cầu gói VPS, Cloud hoặc gói lưu trữ chuyên dụng. Một số máy chủ web Linux được chia sẻ hiện hỗ trợ Node.js nhưng điều này không phổ biến trên hầu hết các nền tảng, tức là Pantheon với các môi trường Node.js cụ thể. Mặt khác, Sợi cần được cài đặt trên CentOS với Drush, điều này cũng không phổ biến hoặc mặc định trong hầu hết các công ty lưu trữ web cPanel.

Drupal tách rời: Sử dụng React, Angular, Vue, Ember và Gatsby để phát triển chủ đề

Công cụ dòng lệnh NPM: "Sử dụng npm để cài đặt, chia sẻ và phân phối mã; quản lý các phụ thuộc trong các dự án của bạn; và chia sẻ & nhận phản hồi với người khác. Sổ đăng ký npm lưu trữ trên thế giới’Bộ sưu tập lớn nhất của mã miễn phí, có thể tái sử dụng. Các thư viện như jQuery, Bootstrap, React và Angular và các thành phần từ các khung như Ember. Gói dành cho thiết bị di động, IoT, mặt trước, mặt sau, robot… tất cả mọi thứ bạn cần để bắt đầu xây dựng những điều tuyệt vời. Lắp ráp các gói như khối xây dựng để nhanh chóng phát triển các dự án mới tuyệt vời."Tìm hiểu thêm về Trình quản lý gói NPM cho Node.js.

Outlook: React không có khả năng thay thế các chủ đề Drupal 8 dựa trên PHP & Cành

Mặc dù việc áp dụng React trong lõi Drupal sẽ có khả năng mở ra một lĩnh vực mới về khả năng chủ đề, nhưng nó không có khả năng thay thế các tùy chọn PHP được cung cấp bởi Twig / Symfony2 trong sử dụng phổ biến. Các công ty lưu trữ web Linux được chia sẻ nhiều hơn đang bổ sung hỗ trợ cho Node.js, nhưng phần lớn sử dụng nó như một phần nâng cao cho gói VPS. Nếu nhu cầu của người dùng về lưu trữ cPanel tăng đối với hỗ trợ Node.js, các công ty có thể sẽ thêm chức năng vào ngăn xếp web của họ. Các công ty như Pantheon đã cung cấp hỗ trợ nền tảng Node.js tùy chỉnh cho lưu trữ Drupal 8 và giờ đây, Acquia cũng có tùy chọn này trên đám mây của họ. Các gói đám mây được quản lý này rất tuyệt vời để lưu trữ các trang web Drupal 8 với Node.js trong môi trường hiệu suất cao để sản xuất.

Outlook: React Không có khả năng thay thế 8 chủ đề Drupal dựa trên PHP & Twig

Đám mây Node.js: "Dịch vụ ứng dụng Acquia Cloud Node.js là một dịch vụ thời gian chạy riêng để thực thi các ứng dụng Javascript back-end (phía máy chủ). Môi trường Node.js của chúng tôi có thể được sử dụng để phục vụ hầu hết ngày nay’Các ứng dụng JavaScript phổ biến như GraphQL, React, Ember và nhiều ứng dụng khác." Tìm hiểu thêm.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me