Creatorul Vue.js, Evan You, intervine în discuția despre cadru JavaScript WordPress
Publicat: 2017-06-06
Săptămâna trecută, colaboratorii de bază WordPress și-au limitat considerentele pentru un nou cadru JavaScript la React și Vue. Deoarece echipa de bază are mai multe cunoștințe colective despre lucrul cu React, ei au contactat dezvoltatori cu experiențe diferite de utilizare a altor cadre într-un context WordPress.
Una dintre principalele preocupări ale colaboratorilor cu privire la Vue este longevitatea proiectului. L-am întrebat pe creatorul Vue, Evan You, dacă ar putea interveni asupra subiectului pentru a oferi colaboratorilor WordPress o mai bună înțelegere a proiectului, în special în ceea ce privește eforturile sale de a cultiva menținători suplimentari pentru a ajuta la împărțirea sarcinii de întreținere.
„Cred că este important să ne uităm la istoricul – Vue există de aproape 4 ani și toată munca a fost făcută în public pe GitHub, astfel încât oricine să poată verifica istoricul întreținerii”, a spus Tu. „Deși a fost dezvoltat în mare parte de mine, întreținerea actuală este mult mai condusă de comunitate. Avem membri activi ai echipei de bază care trimit majoritatea problemelor și un procent din ce în ce mai mare din problemele rezolvate de PR-urile comunității. Deci – da, lucrasem deja la cultivarea de menținători suplimentari și voi continua să fac asta.”
În prezent, primiți 10.000 USD/lună din donații recurente Patreon care îi finanțează eforturile de lucru cu normă întreagă la Vue. Înainte de aceasta, a lucrat și la Google și Meteor. În perioada petrecută la Google, unele dintre proiectele la care ați lucrat au folosit Angular, despre care a spus că a considerat că era prea grele pentru cazurile sale de utilizare la acea vreme. El a construit Vue.js pentru a fi o implementare mai ușoară a conceptelor care i-au plăcut despre Angular.
De asemenea, ați spus recent că a învățat destul de multe de la comunitatea React, ceea ce i-a influențat unele dintre deciziile sale tehnice în Vue 2.
Am învățat multe de la comunitatea React – atât despre cod, cât și despre oameni. Sper că toată lumea poate fi ca @dan_abramov. Pace.
— Evan You (@youyuxi) 29 mai 2017
„În primul rând, Vue 2 utilizează același model de randare bazat pe Virtual DOM dedesubt, care a fost lansat pentru prima dată de React”, a spus Tu. „Introducerea unui DOM virtual a permis lui Vue să expună puterea compoziției vdom, menținând în același timp accesibilitatea.
„Comunitatea React este, de asemenea, foarte activă atunci când sunt explorate noi domenii cu probleme – de exemplu, managementul statelor și managementul CSS. Există multe soluții concurente și multe inspirații când implementam soluții oficiale pentru Vue.”
Evan You abordează concepțiile greșite ale colaboratorilor de bază din WordPress despre Vue.js
Ați spus că a urmărit discuțiile colaboratorilor WordPress despre React vs Vue, dar nu ar oferi o opinie despre care este o alegere mai bună pentru proiect.
„În mod evident, răspunsul meu ar fi părtinitor și, sincer, nu sunt în pielea echipei de bază WP, așa că nu am suficientă perspectivă pentru a face o alegere”, a spus Tu. „Cu toate acestea, pot oferi feedback cu privire la unele dintre problemele discutate în speranța de a-i ajuta să ia o decizie mai bine informată.”
Ați lăsat un comentariu la cele mai recente note de întâlnire Javascript cu clarificări cu privire la câteva neînțelegeri despre Vue.js. Ați abordat punctul referitor la „imbrațirea limbajului JavaScript”, deoarece unii contribuitori cred că limbajul de șablon al Vue ascunde JavaScript-ul de bază.
„Cred că „îmbrățișarea limbajului JavaScript” este o altă primitivă a React pe care nu o vedem în Vue”, a spus Andrew Duthie în timpul ultimei întâlniri.

Răspunsul dumneavoastră compară utilizarea de către Vue a șabloanelor ca „zahăr de sintaxă pentru reprezentarea vizualizării pe partea de sus a HTML” cu ceea ce el crede că este o utilizare similară în cazul JSX ca reprezentare a vizualizării pe partea de sus a JavaScript:
Bogăția crescândă a interfeței de utilizare NU necesită punerea totul în JavaScript. Pe de altă parte, doar pentru că Vue folosește șabloane în mod implicit, nu înseamnă că permite oamenilor să se descurce fără să învețe JavaScript corect.
Șabloanele Vue sunt compilate în funcțiile de redare JavaScript sub capotă și sunt de fapt mai aproape de JavaScript decât de șablonul tradițional de șiruri. Este doar un strat de zahăr de sintaxă deasupra reprezentării Virtual DOM subiacente. Gândiți-vă la JSX ca sugar de sintaxă pentru reprezentarea vizualizării deasupra JS; Șabloanele Vue sunt sugar de sintaxă pentru reprezentarea vizualizării deasupra HTML.
JSX/Raw JS oferă mai multă flexibilitate atunci când trebuie să aplicați manipularea directă a nodurilor Virtual DOM, de aceea Vue acceptă și funcții de randare. Dar acest lucru nu înseamnă introducerea a două paradigme opuse sub același cort - pur și simplu permite utilizatorului să săriască stratul de zahăr de sintaxă pentru mai mult control.
Ați spus că ideea din spatele modelării pe lângă funcțiile de randare este de a oferi „o mai bună abordabilitate”, o preocupare împărtășită de mulți alți susținători ai adoptării Vue.
„Utilizatorii care se simt mai confortabil cu HTML și au cazuri de utilizare mai simple ar putea folosi șablonul, în timp ce utilizatorii care sunt deja familiarizați cu funcțiile JSX/render pot profita de toată puterea JS”, a spus You. „Acest lucru s-ar potrivi destul de bine pentru utilizarea de bază WP: utilizatorii comunității cărora le pasă de accesibilitate încep mai ușor, în timp ce echipa de bază are acces la funcțiile JSX/rendare pentru cazuri de utilizare avansate.”
De asemenea, ați abordat preocuparea privind longevitatea oferind mai multe informații despre procesele de dezvoltare ale Vue. El a confirmat că baza de cod actuală este dezvoltată în mare parte doar de el, dar întreținerea este răspândită într-o echipă de bază cu membri din întreaga lume.
„Alți contribuitori au un număr mai mic de angajări, deoarece contribuțiile lor sunt toate trimise sub formă de PR și noi folosim funcția „Squash and commit” de pe GitHub, astfel încât fiecare PR are ca rezultat un singur commit pentru contributor”, a spus Tu. „Am îmbinat aproape 500 de PR-uri numai în depozitul de bază și multe altele în cadrul organizației. Alte repoziții din cadrul organizației vuejs, de exemplu, vuex, vue-router, vuejs.org sunt, de asemenea, întreținute în mare parte de membrii echipei dedicați.”
Ați oferit, de asemenea, clarificări cu privire la problemele de stabilitate și compatibilitate viitoare, deoarece colaboratorii WordPress au prezentat îngrijorări cu privire la modificările nerespectate în limbajul de șablon în Vue 2.0.
„Acest lucru cere niște clarificări: versiunea Vue urmează strict pe semver”, a spus Tu. „Singura dată când au existat modificări ale API-ului după 1.0 a fost denivelarea 2.0. Sintaxa șablonului face parte din API, așa că nu se va [rupe], iar între denivelările majore ale versiunilor ne angajăm să fim 100% compatibili cu API-ul. Luăm stabilitatea foarte în serios, la fel și comunitatea noastră și utilizatorii în producție, inclusiv GitLab, Vice și unele dintre cele mai mari companii de internet din China.”
Deoarece mulți colaboratori de bază WordPress s-au dezvoltat pe lângă React de ani de zile, contribuția dvs. oferă o privire mai detaliată și mai aprofundată asupra Vue, pe care au cerut-o colaboratorii în timpul diferitelor runde de feedback. Discuția va continua în următoarele câteva săptămâni, iar colaboratorii plănuiesc să includă subiectul la summitul colaboratorilor WordCamp Europe.
