Twórca Vue.js Evan You waży się na WordPressie Dyskusja na temat frameworka JavaScript

Opublikowany: 2017-06-06
zdjęcie: JSConf China

W zeszłym tygodniu najważniejsi współtwórcy WordPressa zawęzili swoje rozważania dotyczące nowego frameworka JavaScript do React i Vue. Ponieważ główny zespół ma więcej zbiorowej wiedzy na temat pracy z React, skontaktował się z programistami z różnymi doświadczeniami w korzystaniu z innych frameworków w kontekście WordPress.

Jedną z głównych obaw autorów dotyczących Vue jest długowieczność projektu. Zapytałem twórcę Vue, Evana You, czy mógłby zająć się tym tematem, aby dać współpracownikom WordPressa lepsze zrozumienie projektu, w szczególności w odniesieniu do jego wysiłków na rzecz kultywowania dodatkowych opiekunów, aby pomóc w dzieleniu się ciężarem utrzymania.

„Myślę, że ważne jest, aby spojrzeć na osiągnięcia – Vue istnieje od prawie 4 lat, a cała praca została wykonana publicznie na GitHub, więc każdy może sprawdzić historię konserwacji” – powiedziałeś. „Chociaż został w dużej mierze opracowany przeze mnie, obecna konserwacja jest znacznie bardziej zorientowana na społeczność. Mamy aktywnych członków głównego zespołu, którzy zajmują się większością problemów i coraz większym odsetkiem problemów naprawionych przez PR społeczności. A więc – tak, pracowałem już nad rozwijaniem dodatkowych opiekunów i będę to robić nadal.”

Obecnie otrzymujesz 10 000 USD miesięcznie z powtarzających się darowizn Patreon, które finansują jego pełnoetatowe działania nad Vue. Wcześniej pracował również w Google i Meteor. Podczas jego pracy w Google niektóre projekty, nad którymi pracowałeś, wykorzystywały Angular, który, jak powiedział, okazał się zbyt ciężki dla jego ówczesnych przypadków użycia. Zbudował Vue.js, aby był lżejszą implementacją koncepcji, które lubił w Angularze.

Niedawno powiedziałeś również, że nauczył się sporo od społeczności React, co wpłynęło na niektóre z jego technicznych decyzji w Vue 2.

„Po pierwsze, Vue 2 wykorzystuje ten sam model renderowania oparty na wirtualnym DOM, który został po raz pierwszy wprowadzony przez React”, powiedział You. „Wprowadzenie wirtualnego DOM pozwoliło Vue ujawnić moc kompozycji vdom przy jednoczesnym zachowaniu przystępności.

„Społeczność React jest również bardzo aktywna, gdy pojawiają się nowe obszary problemowe – np. zarządzanie państwem i zarządzanie CSS. Jest wiele konkurencyjnych rozwiązań i wiele inspiracji, kiedy wdrażałem oficjalne rozwiązania dla Vue.”

Evan You odpowiada na błędne przekonania współtwórców WordPress na temat Vue.js

Powiedziałeś, że śledził dyskusje współtwórców WordPressa na temat React vs Vue, ale nie wyraziłby opinii na temat lepszego wyboru dla projektu.

„Moja odpowiedź byłaby oczywiście stronnicza i szczerze mówiąc, nie jestem w sytuacji podstawowego zespołu WP, więc nie mam wystarczającej perspektywy, aby dokonać wyboru” – powiedziałeś. „Mogę jednak przekazać informacje zwrotne na temat niektórych omawianych kwestii, mając nadzieję, że pomogę im w podjęciu bardziej świadomej decyzji”.

Zostawiłeś komentarz do ostatnich notatek ze spotkań Javascript z wyjaśnieniem kilku nieporozumień dotyczących Vue.js. Odniosłeś się do kwestii „obejmowania JavaScript językiem”, ponieważ niektórzy współtwórcy uważają, że język szablonów Vue zasłania podstawowy JavaScript.

„Myślę, że „objęcie JavaScript językiem” to kolejny prymityw React, którego nie widzimy w Vue” – powiedział Andrew Duthie podczas ostatniego spotkania.

Twoja odpowiedź porównuje użycie szablonów przez Vue jako „cukier składni do reprezentacji widoku na wierzchu HTML” z tym, co uważa za podobne użycie w przypadku JSX jako reprezentacji widoku na górze JavaScript:

Rosnące bogactwo interfejsu użytkownika NIE wymaga umieszczania wszystkiego w JavaScript. Z drugiej strony, tylko dlatego, że Vue domyślnie używa szablonów, nie oznacza, że ​​pozwala ludziom obejść się bez prawidłowej nauki JavaScript.

Szablony Vue są kompilowane w funkcje renderujące JavaScript pod maską i są w rzeczywistości bliższe JavaScriptowi niż tradycyjnemu szablonowaniu ciągów. To tylko warstwa cukru składniowego na wierzchu podstawowej reprezentacji wirtualnego DOM. Pomyśl o JSX jako o cukierku składni dla reprezentacji widoku na wierzchu JS; Szablony Vue to cukier składni do reprezentacji widoku na wierzchu HTML.

JSX/Raw JS zapewnia większą elastyczność, gdy trzeba zastosować bezpośrednią manipulację węzłami Virtual DOM, dlatego Vue obsługuje również funkcje renderowania. Nie oznacza to jednak umieszczenia dwóch przeciwstawnych paradygmatów pod tym samym namiotem – po prostu pozwala użytkownikowi pominąć warstwę cukru składniowego w celu uzyskania większej kontroli.

Powiedziałeś, że ideą tworzenia szablonów nad funkcjami renderowania jest zapewnienie „lepszej dostępności”, co jest problemem wielu innych zwolenników WordPressa stosujących Vue.

„Użytkownicy, którzy są bardziej zaznajomieni z HTML i mają prostsze przypadki użycia, mogą użyć szablonu, podczas gdy użytkownicy, którzy są już zaznajomieni z funkcjami JSX/render, mogą w pełni wykorzystać możliwości JS” – powiedziałeś. „To całkiem dobrze pasowałoby do korzystania z rdzenia WP: użytkownicy społeczności, którym zależy na przystępności, mają łatwiejszy czas na rozpoczęcie pracy, podczas gdy główny zespół ma dostęp do funkcji JSX/render w przypadku zaawansowanych zastosowań”.

Odniosłaś się również do kwestii długowieczności, oferując więcej informacji na temat procesów rozwoju Vue. Potwierdził, że obecna baza kodu jest w dużej mierze tworzona przez niego samego, ale utrzymanie jest rozłożone na główny zespół z członkami na całym świecie.

„Inni kontrybutorzy mają mniejszą liczbę zatwierdzeń, ponieważ ich wkłady są przesyłane w formie PR, a my używamy funkcji „Squash and commit” na GitHub, więc każdy PR skutkuje tylko jednym zatwierdzeniem dla kontrybutora” – powiedziałeś. „Połączyliśmy blisko 500 PR w samym głównym repozytorium i wiele więcej w całej organizacji. Inne repozytoria w ramach organizacji vuejs, np. vuex, vue-router, vuejs.org, są również w dużej mierze utrzymywane przez oddanych członków zespołu.”

Zaoferowałeś również wyjaśnienie kwestii stabilności i przyszłej kompatybilności, ponieważ współtwórcy WordPressa zgłaszali obawy dotyczące złamania zmian w języku szablonów w Vue 2.0.

„To błaga o pewne wyjaśnienie: wersjonowanie Vue ściśle przestrzega semver” – powiedziałeś. „Jedynym przypadkiem, w którym nastąpiły zerwanie zmian API po wersji 1.0, był wstrząs 2.0. Składnia szablonu jest częścią API, więc nie będzie [przerwać], a pomiędzy głównymi zmianami wersji zobowiązujemy się do 100% wstecznej kompatybilności API. Bardzo poważnie traktujemy stabilność, podobnie jak nasza społeczność i użytkownicy produkcyjni, w tym GitLab, Vice i niektóre z największych firm internetowych w Chinach”.

Ponieważ wielu głównych współtwórców WordPressa od lat rozwija się na bazie Reacta, Twój wkład oferuje bardziej szczegółowe, dogłębne spojrzenie na Vue, o które współtwórcy prosili podczas różnych rund opinii. Dyskusja będzie kontynuowana przez kilka następnych tygodni, a autorzy planują włączyć ten temat na szczyt autorów WordCamp Europe.