Burchak va boshqalar. Reaksiya. Vue: 2017 yil taqqoslash

Veb-dasturingiz uchun JavaScript-ni tanlash juda qiyin bo'lishi mumkin. Angular va React hozirgi kunlarda juda mashhur bo'lib, so'nggi paytlarda juda ko'p tortishuvlarni boshlaydigan yangi narsa mavjud: VueJS. Buning ustiga, bu blokdagi yangi bolalarning atigi bir nechtasi.

2017 yilda Javascript yozuvi - bu kunlarda narsalar oson emas!

Xo'sh, qanday qaror qilishimiz kerak? Tarozilar ro'yxati hech qachon zarar qilmaydi. Biz buni avvalgi maqolamning uslubida bajaramiz, "9 qadam: veb-ilovangiz uchun texnologiya to'plamini tanlash".

Biz boshlashdan oldin - SPA yoki yo'qmi?

Avval siz bitta sahifali dasturga (SPA) kerak yoki yo'qligini aniq belgilab, ko'p sahifali yondashuvni qabul qilishingiz kerak. Bu haqda mening blogimdagi "Yagona sahifali dastur (SPA) va ko'p sahifali veb-ilovalar (MPA)" (yaqinda yangilanishlarni Twitter-da kuzatib boring) sahifasida o'qing.

Bugun boshlanuvchilar: burchakli, reaktsiya va Vue

Birinchidan, men hayot aylanishi va strategik jihatlarni muhokama qilmoqchiman. Keyin, uchta javascript tizimining xususiyatlari va tushunchalariga o'tamiz. Va nihoyat, biz bir xulosaga kelamiz.

Bugun biz quyidagi savollarga javob beramiz:

  • Ramkalar / kutubxonalar qay darajada etuk?
  • Ehtimol ramkalar biroz vaqtga yaqin bo'lishi mumkinmi?
  • Ularning tegishli jamoalari qay darajada keng va foydali?
  • Har bir ramka uchun ishlab chiquvchilarni topish qanchalik oson?
  • Ramkaning asosiy dasturiy tushunchalari qanday?
  • Kichik yoki katta dasturlar uchun ramkalarni ishlatish qanchalik oson?
  • O'quv egri har bir ramka uchun qanday ko'rinishga ega?
  • Ramkalardan qanday ishlashni kutish mumkin?
  • Qayerda qalpoqchani diqqat bilan ko'rib chiqishingiz mumkin?
  • Qanday qilib siz tanlagan doirani rivojlantirishni boshlashingiz mumkin?

Tayyor, sozlang, keting!

1. Hayot aylanishi va strategik jihatlar

Vue va boshqalar

1.1 Ba'zi bir tarix

Burchak - bu TypeScript-ga asoslangan Javascript asosidir. Google tomonidan ishlab chiqilgan va qo'llab-quvvatlangan, u "Super Mersin JavaScript MVW Framework" deb ta'riflangan. Burchaklar (shuningdek, "burchakli 2+", "burchakli 2" yoki "ng2") - bu AngularJS-ning qayta yozilgan, ko'pincha mos kelmaydigan vorisi (shuningdek, "Angular.js" yoki "AngularJS 1.x"). AngularJS (eski versiyasi) dastlab 2010 yilning oktyabrida chiqarilgan bo'lsa-da, u hanuzgacha nosozliklarni tuzatmoqda va hk - yangi Angular (sans JS) 2016 yil sentyabr oyida 2-versiya sifatida taqdim etildi. 3-versiya o'tkazib yuborildi. Burchak Google, Wix, Weather.com, healthcare.gov va Forbes (madewithangular, stackshare va libscore.com-ga ko'ra) tomonidan qo'llaniladi.

Reaktsiya "foydalanuvchi interfeyslarini yaratish uchun JavaScript kutubxonasi" deb ta'riflangan. Dastlab 2013 yil mart oyida chiqarilgan React Facebook tomonidan ishlab chiqilgan va bir nechta sahifalarda (lekin bitta sahifali dastur sifatida emas) React komponentlarini ishlatadigan Facebook tomonidan qo'llab-quvvatlanadi. Kris Kordlning ushbu maqolasiga ko'ra, Angular Google-ga qaraganda Facebook-da React ko'proq ishlatiladi. React shuningdek, Airbnb, Uber, Netflix, Twitter, Pinterest, Reddit, Udemy, Wix, Paypal, Imgur, Feedly, Stripe, Tumblr, Walmart va boshqalar (Facebook, stackshare va libscore.com-ga ko'ra) tomonidan qo'llaniladi.

Facebook React Fiber versiyasini chiqarish ustida ishlamoqda. U kaput ostidagi React-ni o'zgartiradi - natijada tasvirlash tezroq bo'lishi kutilmoqda, ammo o'zgarishlardan keyin narsalar orqaga mos keladi. Facebook 2017 yil aprel oyida ishlab chiquvchilar konferentsiyasida yuz bergan o'zgarishlar haqida gapirdi va yangi arxitektura haqida norasmiy maqola chiqdi. React Fiber 2017 yil sentyabr oyida React 16 bilan chiqarildi.

Vue 2016 yilda eng tez rivojlanayotgan JS ramkalaridan biridir. Vue o'zini "Interfaol interfeyslarni qurish uchun intuitiv, tez va kompozitsion MVVM" sifatida tavsiflaydi. U birinchi Google-ishchi Evan You (BTW: Evan) tomonidan 2014 yil fevral oyida chiqarilgan. marketing faoliyati va birinchi haftadagi raqamlar haqida qiziqarli blog yozdi). Bu juda katta muvaffaqiyat bo'ldi, ayniqsa Vue yirik kompaniyaning ko'magisiz bir kishilik tomosha singari tortib olinishini hisobga olsak. Hozirda Evan o'nlab asosiy dasturchilar guruhiga ega. 2016 yilda 2-versiya chiqdi. Vue Alibaba, Baidu, Expedia, Nintendo, GitLab tomonidan qo'llaniladi - kichik loyihalar ro'yxatini madewithvuejs.com saytida topish mumkin.

Uchchala ramka ham MIT litsenziyasi bo'yicha mavjud.

Reaktsiya maxsus BSD3-litsenziyali fayl bilan 2017 yil sentyabrgacha jo'natildi. Patent hujjatida ko'plab munozaralar bo'ldi. Agar siz ushbu tarixga qiziqsangiz, ushbu Github mavzusidagi munozarani, patent faylining sabablari va tarixini (sobiq Facebook muhandisi Jeyms Ide tomonidan) o'qishingiz mumkin, nima uchun qo'rqmasligingiz kerak (muallif Dennis Uolsh), startaplarni ishlatishdan ogohlantirish (muallif Raul Kripalani) va Facebook'ning ushbu mavzu bo'yicha avvalgi bayonoti: React litsenziyasini tushuntirish. Baribir - barchaning ahamiyati yo'q, Facebook nihoyat React MIT litsenziyasini oladi.

1.2 Asosiy rivojlanish

Yuqorida ta'kidlab o'tilganidek, Angular and React katta kompaniyalar tomonidan qo'llab-quvvatlanadi va ishlatiladi. Facebook, Instagram va Whatsapp bu sahifalardan foydalanmoqda. Google uni juda ko'p loyihalarda ishlatadi: masalan, yangi Adwords UI Angular & Dart yordamida amalga oshirildi. Shunga qaramay, Vue Patreon va boshqa homiylik vositalari orqali qo'llab-quvvatlanadigan shaxslar guruhi tomonidan amalga oshiriladi. Bu ijobiy yoki salbiy ekanligini o'zingiz hal qilishingiz mumkin. Matthias Götzke, Vue-ning kichik jamoasi foyda, deb hisoblaydi, chunki bu toza / kam ishlangan kod / API-ga olib keladi.

Ba'zi bir statistikani ko'rib chiqaylik: Burular o'zlarining guruh sahifalarida 36 kishini, Vue 16 kishini ro'yxatga oladi va React-da guruh sahifasi yo'q. Githubda Angularning> 25,000 yulduzlari va 463 ishtirokchilari, React'ning 70,000 yulduzlari va 1000 qatnashchilari, Vue'ning deyarli 60,000 yulduzlari va atigi 120 ta ishtirokchilari bor. Github Yulduzlar tarixini burchak, reaktsiya va rang uchun tekshirishingiz mumkin. Yana bir bor, Vue juda yaxshi trendga chiqayotganga o'xshaydi. Bestof.js ma'lumotlariga ko'ra, so'nggi uch oy davomida Angular 2 kuniga o'rtacha 31 ta yulduz, React 74 yulduz va Vue.JS 107 yulduzni yig'moqda.

Github yulduzlar burchagi, reaktsiyasi va o'zgarishi uchun tarix (manba)

Yangilanish: npm tendentsiyalarini ko'rsatganligi uchun Pol Henschelga rahmat. Ular berilgan npm paketlar uchun yuklanishlar sonini ko'rsatadi va Github yulduzlariga toza ko'rinish sifatida yanada foydali bo'ladi:

So'nggi 2 yil ichida berilgan npm paketlar uchun npm yuklash raqamlari.

1.3 Bozorning hayot aylanishi

Google Trends-da turli xil nomlar va versiyalar tufayli Angular, Reaction va Vue-larni taqqoslash qiyin. Taxminan bitta usul "Internet va texnologiyalar" toifasida qidirish bo'lishi mumkin. Mana natija:

Xo'sh. Vue 2014 yildan oldin yaratilgan emas - shuning uchun bu erda bir narsa noto'g'ri. La Vue fransuzcha "ko'rish", "ko'rish" yoki "fikr" ma'nosida. Balki shundaydir. "VueJS" va "Angular" yoki "React" ni taqqoslash ham adolatli emas, chunki VueJS boshqalar bilan taqqoslaganda deyarli natija bermaydi.

Keling, yana bir narsani sinab ko'raylik. ThoughWorks texnologiyalari radarlari vaqt o'tishi bilan texnologiyalar qanday rivojlanayotgani haqida yaxshi taassurot qoldiradi. Redux qabul qilish bosqichida (loyihalarda qabul qilinishi kerak!) Va u bir qator ThoughtWorks loyihalarida bebaho bo'lgan. Vue.js sinov bosqichida (sinab ko'ring!) U engil o'rganish va egiluvchan alternativa sifatida pastki o'rganish egri bo'lgan burchakka tavsiflanadi. 2-burchak baholash bosqichida - u ThoughtWork jamoalari tomonidan muvaffaqiyatli qo'llanilmoqda, ammo hozircha kuchli tavsiyalar mavjud emas.

Stackoverflow 2017-ning so'nggi so'roviga ko'ra, React so'rovni ishlab chiquvchilarning 67 foizi va AngularJS-ning 52 foizi tomonidan yoqdi. "Rivojlanishni xohlamaslik" AngularJS (48%) va React (33%) uchun yuqori raqamlarni qayd etadi. Ikkala holatda ham Vue eng yaxshi o'nlikka kirmaydi. Keyin statejs.com so'rovini "oldingi doiralarni" taqqoslash. Eng qiziqarli faktlar: React and Angular 100% xabardorlikka ega va so'rovda qatnashganlarning 23% Vue noma'lum. Qoniqishga kelsak, React "yana foydalanish uchun" 92%, Vue 89% va Angular 2 faqat 65% ovoz to'pladi.

Boshqa mijozlar so'rovi haqida nima deyish mumkin? Erik Elliot 2016 yil oktyabr oyida Angular 2 va React-ni baholashni boshladi. So'rovda qatnashganlarning atigi 38 foizi yana Angular 2-ni, 84 foizi esa React-dan foydalanadilar.

1.4 Uzoq muddatli qo'llab-quvvatlash va migratsiya

Facebook o'zining dizayn tamoyillarida ta'kidlaganidek, reaktiv API-lar juda barqaror. Joriy API-dan yangisiga o'tishga yordam beradigan ba'zi skriptlar mavjud: reaktsiya-kodemodini tekshiring. Ko'chib o'tish juda oson va uzoq muddatli qo'llab-quvvatlash versiyasi kabi (zarur) yo'q. Reddit ushbu postida odamlar yangilanishlar hech qachon muammo bo'lmasligini ta'kidlamoqda. React guruhi o'zlarining versiyalarini yaratish sxemasi haqida blog yozishdi. Ular amortizatsiya to'g'risida ogohlantirishni qo'shganda, keyingi asosiy versiyada xatti-harakatlar o'zgartirilgunga qadar, ular hozirgi versiyaning qolgan qismi uchun saqlanishadi. Yangi asosiy versiyada rejalashtirilgan o'zgarishlar yo'q - v14 2015 yil oktyabr oyida chiqarildi, v15 2016 yil aprelda nashr etildi, v16 esa hali chiqarilgan sana yo'q. Yaqinda React yadro ishlab chiqaruvchisi ta'kidlaganidek, yangilanish muammo bo'lmasligi kerak.

Angularga kelsak, v2 versiyasidan boshlab Angular versiyasini chiqarish va chiqarish haqida blog mavjud. Har olti oyda bitta muhim yangilanish bo'ladi, va kamida olti oy davomida amortizatsiya muddati bo'ladi (ikkita asosiy reliz). Hujjatlarda amortizatsiya muddati qisqaroq bo'lgan ba'zi bir eksperimental API mavjud. Hozircha rasmiy e'lon yo'q, ammo ushbu maqolaga ko'ra, Angular jamoasi Angular 4-dan boshlanib, uzoq muddatli qo'llab-quvvatlanadigan versiyalarni e'lon qilishdi. Ushbu versiyalar keyingi yirik versiya chiqqandan keyin kamida bir yil davomida qo'llab-quvvatlanadi. Bu Angular 4 hech bo'lmaganda 2018 yil sentyabrgacha xatolarni tuzatish va muhim yamalar bilan qo'llab-quvvatlanishini anglatadi. Ko'pgina hollarda, v2 dan v4 gacha bo'lgan burchakni yangilash burchakka bog'liqlikni yangilash kabi oson. Burular shuningdek, qo'shimcha o'zgarishlar kerak yoki yo'qligi haqida ma'lumot beruvchi qo'llanmani taqdim etadi.

Vue 1.x-dan 2.0-ni yangilash jarayoni kichik dastur uchun oson bo'lishi kerak - ishlab chiquvchilar guruhi API-ning 90% o'zgarmaganligini ta'kidladilar. Konsolda yaxshi modernizatsiya-diagnostik migratsiya-yordamchi vositasi mavjud. Bir ishlab chiquvchining ta'kidlashicha, v1-dan v2-ga yangilanish katta ilovada hali ham qiziqarli emas. Afsuski, keyingi katta versiya yoki LTS versiyalarining rejalari haqida ma'lumot haqida aniq (ommaviy) yo'l xaritasi yo'q.

Yana bir narsa: Burchak - bu to'liq ramka va birlashtirilgan ko'p narsalarni taklif qiladi. Reaktsiya Angularga qaraganda moslashuvchan va siz ko'proq mustaqil, sozlanmagan, tez harakatlanadigan kutubxonalardan foydalangan holda to'planasiz - bu sizga mos keladigan yangilanishlar va migratsiyalar haqida g'amxo'rlik qilishingiz kerakligini anglatadi. Agar ba'zi paketlar endi ishlamasa yoki boshqa paketlar biron bir vaqtda amalda standartga aylansa, bu zarar etkazishi mumkin.

1.5 Kadrlar va yollash

Agar sizda Javascript-ni o'rganishni istamaydigan ichki HTML-ishlab chiquvchilari bo'lsa, siz Angular yoki Vue-ni tanlaganingiz ma'qul. Reaktsiya ko'proq Javascriptni talab qiladi (bu haqda keyinroq gaplashamiz).

Sizda kodga yaqin dizaynerlar bormi? "Pier25" foydalanuvchisi Reddit-ga "React" siz Facebook-da ishlayotgan bo'lsangiz mantiqiy ekanligini ta'kidlaydi, bu erda hamma super qahramon ishlab chiqaruvchisi. Haqiqiy dunyoda siz har doim ham JSX-ni o'zgartira oladigan dizaynerni topa olmaysiz - masalan, HTML shablonlari bilan ishlash ancha osonlashadi.

Angular ramkaning yaxshi tomoni shundaki, boshqa kompaniyaning yangi "Angular 2" dasturchisi tezda barcha kerakli konventsiyalar bilan tanishadi. Reaktsion loyihalar me'moriy qarorlar nuqtai nazaridan har biridan farq qiladi va ishlab chiquvchilar aniq loyihani sozlash bilan tanishishlari kerak.

Agar siz ob'ektga yo'naltirilgan yoki sizning Javascript-ni yoqtirmaydigan dasturchilaringiz bo'lsa, burchakka chiqish ham yaxshi. Uyga olib borish uchun Mahesh Chanddan iqtibos keltiramiz:

Men JavaScript dasturchisi emasman. Mening bilimim "real" dasturiy platformalardan foydalangan holda yirik korxona tizimlarini yaratishdir. Men 1997 yilda C, C ++, Paskal, Ada va Fortran yordamida dasturlarni qurishni boshladim. (...) Men aniq ayta olamanki, JavaScript bu shunchaki g'iybatdir. Microsoft MVP va mutaxassisi sifatida TypeScript-ni yaxshi tushunaman. Men Facebook-ni dasturiy ta'minot ishlab chiqaruvchi kompaniya sifatida ko'rmayapman. Biroq, Google va Microsoft allaqachon eng yirik dasturiy ta'minotni ishlab chiqaruvchisi. Men Google va Microsoft tomonidan kuchli qo'llab-quvvatlanadigan mahsulot bilan ishlashda o'zimni qulay his qilaman. Bundan tashqari (...) men bilaman, Microsoft TypeScript uchun yanada katta rejalarga ega.

Xo'sh, men ... ehtimol, Mahesh Microsoft-ning Mintaqaviy direktori ekanligini aytib o'tishim kerak.

2. Reaktsiya, burchak va burilishni taqqoslash

2.1 komponentlari

Ushbu tuzilmalar barcha komponentlarga asoslangan. Komponent kirishni oladi va ba'zi ichki xatti-harakatlardan / hisoblashdan so'ng u ko'rsatilgan UI shablonini (kirish / chiqish maydoni yoki bajariladigan ishlar ro'yxati) natija sifatida qaytaradi. Belgilangan tarkibiy qismlarni veb-sahifada yoki boshqa tarkibiy qismlarda qayta ishlatish oson bo'lishi kerak. Masalan, siz turli xil xususiyatlarga (ustunlar, sarlavha ma'lumotlari, ma'lumotlar qatorlari va boshqalar) ega bo'lgan panjara tarkibiy qismiga ega bo'lishingiz mumkin (boshqa sahifadagi ma'lumotlar to'plamlari bilan komponentni qayta ishlatishingiz mumkin). Agar siz bu haqda ko'proq bilmoqchi bo'lsangiz, bu erda tarkibiy qismlar haqida to'liq maqola.

Reaktsiya va Vue ikkalasi ham soqov tarkibiy qismlarini qayta ishlashda ustunlik qiladi: kirish va qaytish elementlarini chiqish sifatida qabul qiladigan kichik, fuqaroligi bo'lmagan funktsiyalar.

2.2 Typcript vs ES6 va ES5 va boshqalar

React Javascript ES6-dan foydalanishga qaratilgan. Vue Javascript ES5 yoki ES6-dan foydalanadi.

Angular TypeScript-ga tayanadi. Bu tegishli misollarda va ochiq manbali loyihalarda ko'proq moslikni taklif qiladi (Reaksiya namunalarini ES5 yoki ES6-da topish mumkin). Shuningdek, dekorativlar va statik turlar kabi tushunchalar ham mavjud. Statik turlar kodlarni razvedka qilish vositalari uchun foydalidir, masalan, avtomatik qayta ishlash, ta'riflarga o'tish va boshqalar. Shuningdek, ular dasturdagi xatolar sonini kamaytirishi kerak. Ammo bu borada aniq kelishuv mavjud emas. Erik Elliot o'zining "Statik turlar haqidagi dahshatli sir" maqolasida rozi emas. Daniel C Vangning ta'kidlashicha, statik turlardan foydalanishning hech qanday zarari yo'q va test asosida ishlab chiqilgan (TDD) ham statik yozish yaxshi.

React-da tekshirishni yoqish uchun siz Flow-dan foydalanishingiz mumkinligini ham bilishingiz kerak. Bu JavaScript uchun Facebook tomonidan ishlab chiqilgan statik tekshiruvchidir. Oqim VueJS-ga ham qo'shilishi mumkin.

Agar siz kodingizni TypeScript-da yozayotgan bo'lsangiz, endi siz standart JavaScript-ni yozmaysiz. O'sib borayotgan bo'lsa ham, TypeScript-da butun JavaScript tiliga qaraganda kichik foydalanuvchi bazasi mavjud. Xatarlardan biri siz noto'g'ri yo'nalishda ketayotganligingiz bo'lishi mumkin, chunki TypeScript ehtimol vaqt o'tishi bilan yo'qolishi mumkin. Bundan tashqari, TypeScript loyihalarga juda ko'p (o'rganish) qo'shimcha xarajatlarni qo'shadi - bu haqda Angular 2 va Erik Elliot tomonidan taqqoslash orqali o'qishingiz mumkin.

Yangilanish: Jeyms Ravenskroft ushbu maqola sharhida TypeScript-da JSX-ni birinchi darajali qo'llab-quvvatlaydi - tarkibiy qismlarni muammosiz tekshirish mumkinligini aytdi. Shunday qilib, agar siz TypeScript-ni yoqsangiz va React-dan foydalanmoqchi bo'lsangiz, bu muammo bo'lmasligi kerak.

2.3 andozalar - JSX yoki HTML

Uzoq vaqt davomida eng yaxshi amaliyot bilan tanaffuslarga reaktsiya bering. O'nlab yillar davomida ishlab chiquvchilar UI andozalarini ajratib olishga harakat qilishgan va Javascript mantig'ini kiritishgan, ammo JSX bilan ular yana aralashgan. Bu dahshatli tuyulishi mumkin, ammo Piter Xantning "Reaktsiya: eng yaxshi amaliyotlarni qayta ko'rib chiqish" nutqini tinglashingiz kerak (2013 yil oktyabr oyidan). U shablonlarni va mantiqlarni ajratish faqat tashvish emas, balki texnologiyalarni ajratish ekanligini ta'kidlaydi. Shablonlar o'rniga tarkibiy qismlarni qurishingiz kerak. Komponentlar qayta ishlatiladigan, kompozitsion va birlik tomonidan tekshirilishi mumkin.

JSX keyinroq Javascript-da kompilyatsiya qilinadigan HTML-ga o'xshash sintaksis uchun qo'shimcha dastur hisoblanadi. Bu erda bir nechta so'rovlar mavjud - masalan, sinf o'rniga className-ni ishlatishingiz kerak, chunki bu Javascript-da himoyalangan nomdir. JSX - bu rivojlanish uchun katta afzallik, chunki sizda hamma narsa bir joyda, va kodni to'ldirish va vaqtni tekshirish yaxshiroq ishlaydi. Agar siz JSX-da xato yozsangiz, React kompilyatsiya qilmaydi va u xato sodir bo'lgan satr raqamini chiqaradi. Burchak 2 ish vaqtida jimgina ishlamayapti (agar AOT-ni Angular bilan ishlatsangiz, bu dalil bekor bo'lishi mumkin).

JSX React-dagi hamma narsa Javascript ekanligini anglatadi, u ham JSX andozalari, ham mantiq uchun ishlatiladi. Cory House buni 2016 yil yanvar oyidagi maqolasida ta'kidlaydi: “2-burchak“ JS ”ni HTML-ga kiritishda davom etmoqda. React 'HTML' ni JS-ga joylashtiradi. " Bu yaxshi narsa, chunki Javascript HTML-ga qaraganda ancha kuchli.

Burchak shablonlari maxsus burchakli til bilan yaxshilangan HTML (ngIf yoki ngFor kabi narsalar). React JavaScript-ni bilishni talab qilsa-da, Angular sizni Angularga xos sintaksisni o'rganishga majbur qiladi.

Vue xususiyatlari "bitta faylli komponentlar". Bu tashvishlarni ajratish bilan bog'liq bo'lgan ishlarga o'xshaydi - shablonlar, skriptlar va uslublar bitta faylda, ammo uch xil, buyurtma qilingan bo'limlarda. Bu sizga sintaksisni ajratib ko'rsatish, CSS-ni qo'llab-quvvatlash va Jade yoki SCSS kabi protsessorlardan oson foydalanishni anglatadi. Men boshqa maqolalarda JSX disk raskadrovka qilish osonroq ekanligini o'qidim, chunki Vue yomon HTML sintaksis xatolarini ko'rsatmaydi. Bu haqiqat emas, chunki Vue HTML-ni funktsiyalarni bajarish uchun o'zgartiradi - shuning uchun xatolar muammosiz ko'rsatiladi (Vinicius Reis sharhlash va tuzatish uchun rahmat!).

Yon eslatma: Agar sizga JSX g'oyasi yoqsa va uni Vue-da ishlatmoqchi bo'lsangiz, babel-plugin-transform-vue-jsx-dan foydalanishingiz mumkin.

2.4 Asosiy va kutubxona

Burchaklar kutubxonadan emas, balki ramkadan iborat, chunki u sizning arizangiz qanday tuzilishi kerakligi haqida kuchli fikrlarni bildiradi va shuningdek, ko'proq funktsional imkoniyatlarga ega. Burchak - bu "to'liq echim" - batareyalar kiritilgan va sizga yoqimli start berishga tayyor. Siz kutubxonalarni, marshrutlash echimlarini yoki shunga o'xshash narsalarni tahlil qilishingiz shart emas - siz endi ishlashni boshlashingiz mumkin.

Boshqa tomondan, reaktsiya va Vue, hamma uchun moslashuvchan. Ularning kutubxonalarini barcha turdagi paketlarga ulash mumkin (npm da reaktsiya qilish uchun juda ko'p narsa bor, lekin Vue paketlari kamroq, chunki u hali juda yosh). React yordamida siz hatto kutubxonaning o'zini Inferno kabi API-ga mos keladigan alternativalarga almashtirishingiz mumkin. Biroq, katta moslashuvchanlik bilan katta mas'uliyat yuklanadi - React-da qoidalar va cheklangan ko'rsatmalar mavjud emas. Har bir loyiha o'zining arxitekturasi bo'yicha qaror qabul qilishni talab qiladi va muammolar osonroq ketishi mumkin.

O'z navbatida, burchaklar, chalg'itadigan inshootlar, asbob-uskuna, qozonxona, linters va vaqtni yig'ish uchun mos keladi. Bu, shuningdek, agar starter to'plamlari yoki qozon plitalari ishlatilsa React-ga tegishli. Ular tabiiy ravishda juda foydali, ammo React qutisidan tashqarida ishlaydi va ehtimol siz buni o'rganishingiz kerak. Ba'zida Javascript muhitida ishlash uchun zarur bo'lgan turli xil vositalar "Javascript charchoq" deb nomlanadi. Bu haqda Erik Klemmonsning maqolasi bor, u buni aytadi:

O'rnatilgan asboblarning bir nechta to'plami hali ham mavjud, siz ramkadan boshlaganingizda unga odatlanmagansiz. Bular yaratilgan, ammo ko'p ishlab chiqaruvchilar kaput ostida nimalar bo'layotganini tushunmaydilar - yoki ularni bajarish uchun ko'p vaqt talab etiladi.

Vue uchta ramkadan eng toza va engilroq ko'rinadi. GitLab-da Vue.js-ga tegishli qarori haqida blog bor (2016 yil oktyabr):

Vue.js sizga nima qilishini va o'zingiz qilishingiz kerak bo'lgan narsalarni mukammal muvozanat bilan ta'minlaydi. (...) Vue.js har doim qo'lingizda, mustahkam, ammo moslashuvchan xavfsizlik tarmog'i sizga dasturlaringizni samarali va samarali bajarishga yordam beradi. sizning DOM tomonidan etkazilgan azob-uqubatlaringiz minimumgacha.

Ular soddaligi va foydalanish qulayligini yoqtirishadi - dastlabki kod juda o'qiydi va hech qanday hujjatlar yoki tashqi kutubxonalar kerak emas. Hammasi juda sodda. Vue.js "ham ko'p narsa to'g'risida katta taxminlar qilmaydi". GitLab qarori haqida podkast ham mavjud.

Vue tomon siljish haqida yana bir blogpost Pixeljets-dan keladi. React "davlatni xabardorlik nuqtai nazaridan JS dunyosi uchun oldinga qo'yilgan katta qadam edi va ko'p odamlarga haqiqiy funktsional dasturlarni yaxshi va amaliy tarzda ko'rsatdi". React vs. Vue-ning katta kamchiliklaridan biri bu JSX cheklovlari tufayli tarkibiy qismlarni kichik qismlarga bo'lish muammosi. Maqoladan iqtibos:

Men va mening jamoam uchun kodni o'qilishi juda muhim, ammo kodni yozish juda qiziqarli. Haqiqatan ham oddiy kalkulyator vidjetini amalga oshirayotganda 6 komponentni yaratish kulgili emas. Ko'pgina hollarda, ba'zi bir vidjetga texnik xizmat ko'rsatish, o'zgartirish yoki vizual ta'mirlashni qo'llash nuqtai nazaridan ham yomondir, chunki siz bir nechta fayllar / funktsiyalar atrofida aylanib o'tish va HTML-ning har bir kichik qismini alohida tekshirishingiz kerak. Shunga qaramay, men monolit yozishni taklif qilmayman - kunlik rivojlanish uchun mikrokomponentlar o'rniga tarkibiy qismlardan foydalanishni taklif qilaman.

Hacker yangiliklari va Reddit-dagi bloglar haqida qiziqarli munozaralar mavjud - o'zgacha fikrlovchilar va Vue-ning boshqa tarafdorlari ham shunday dalillar mavjud.

2.5 Davlat boshqaruvi va ma'lumotlar majburiyligi

UI-larni yaratish juda qiyin, chunki hamma joyda shtatlar mavjud - vaqt o'tishi bilan ma'lumotlar o'zgarishi murakkablikka olib keladi. Belgilangan davlat ish oqimi, dasturlar o'sib, murakkablashganda katta yordam beradi. Cheklangan dasturlar uchun, ehtimol bu haddan tashqari og'ir va Vanilla JS kabi narsa etarli bo'ladi.

Bu qanday ishlaydi? Komponentlar har qanday vaqtda UI-ni tavsiflaydi. Ma'lumotlar o'zgarganda, ramka butun UI komponentini qayta taqdim etadi - ko'rsatilgan ma'lumotlar doimo yangilanadi. Ushbu kontseptsiyani "UI funktsiyasi" deb atashimiz mumkin.

React ko'pincha Redux bilan birlashtirilgan. Redux o'zini uchta asosiy printsipda tavsiflaydi:

  • Haqiqatning yagona manbai
  • Holat faqat o‘qish uchun
  • O'zgarishlar sof funktsiyalar bilan amalga oshiriladi

Boshqacha aytganda: to'liq ilovaning holati bitta do'kon ichidagi ob'ektlar daraxtida saqlanadi. Bu dasturni nosozliklarni tuzatishga yordam beradi va ba'zi funktsiyalarni bajarish osonroq. Shtat faqat o'qish uchun mo'ljallangan va uni faqat irqiy sharoitlardan saqlanish uchun o'zgartirish mumkin (bu disk raskadrovka paytida ham yordam beradi). Shtatlar qanday qilib harakatlarni o'zgartirishi mumkinligini aniqlash uchun qisqartiruvchilar yoziladi.

Ko'pgina darsliklar va qozonlarda Redux allaqachon o'rnatilgan, ammo siz ularsiz React-dan foydalanishingiz mumkin (va sizning loyihangizda Redux umuman kerak bo'lmasligi mumkin). Redux sizning kodingizga murakkablik va juda kuchli cheklovlarni kiritadi. Agar siz React-ni o'rganayotgan bo'lsangiz, Redux-ga o'tishdan oldin aniq React-ni o'rganish haqida o'ylang. Siz Dan Abramovning "Reduxga ehtiyoj sezmasligi" ni aniq o'qishingiz kerak.

Ba'zi ishlab chiquvchilar Redux o'rniga Mobx-dan foydalanishni taklif qilishadi. Siz buni "avtomatik Redux" deb hisoblashingiz mumkin, bu esa boshida foydalanishni va tushunishni osonlashtiradi. Agar ko'rishni istasangiz, kirish bilan boshlashingiz kerak. Redux va MobX o'rtasidagi foydali taqqoslashni Robin tomonidan ham o'qishingiz mumkin. Xuddi shu muallif Redux-dan MobX-ga o'tish haqida ma'lumot beradi. Agar siz boshqa Flux kutubxonalarini tekshirmoqchi bo'lsangiz, ushbu ro'yxat foydali bo'ladi. Agar siz MVC-dunyodan kelgan bo'lsangiz, Mixail Levkovskiyning "Redux-da fikrlash (barcha bilganingiz MVC)" maqolasini o'qishni xohlaysiz.

Vue Redux-dan foydalanishi mumkin - ammo u Vuex-ni o'ziga xos echim sifatida taklif qiladi.

React va Angular o'rtasidagi katta farq bu bir tomonlama va ikki tomonlama bog'lanishdir. Ikki tomonlama bog'lanish UI elementi (masalan, foydalanuvchi kiritish) yangilanganida model holatini o'zgartiradi. Reaksiya faqat bitta yo'nalishda amalga oshiriladi: avval modelni yangilaydi va keyin UI elementini namoyish etadi. Burchak usuli kodda yanada toza va uni ishlab chiqaruvchiga amalga oshirish osonroq. Reaksiya natijasida ma'lumotlar yaxshiroq ko'rib chiqiladi, chunki ma'lumotlar faqat bitta yo'nalishda oqadi (bu disk raskadrovka jarayonini osonlashtiradi).

Ikkala tushunchaning ham ijobiy va salbiy tomonlari bor. Siz tushunchalarni tushunishingiz va bu sizning doiraviy qaroringizga ta'sir qilishini aniqlashingiz kerak. "Ikki tomonlama ma'lumotni bog'lash: 2-burchak va reaktsiya" maqolasi va Stackoverflow-ning ushbu savoliga har ikkisi ham yaxshi tushuntirish beradi. Bu erda siz interaktiv kod namunalarini topishingiz mumkin (3 yosh, faqat 1-burchak va reaktsiya uchun). Va nihoyat, ahamiyatli tomoni shundaki, Vue ikkala tomonlama va ikki tomonlama bog'lashni (sukut bo'yicha bir tomonlama) qo'llab-quvvatlaydi.

Agar siz qo'shimcha o'qishni istasangiz, turli xil holatlar va burchakli dasturlarda davlat boshqaruvi haqida uzun maqola mavjud (Viktor Savkin tomonidan).

2.6 Boshqa dasturiy tushunchalar

Burchakka bog'liqlik in'ektsiyasi kiradi, bunda bitta ob'ekt boshqa ob'ektga (mijozga) bog'liqlikni (xizmatni) taqdim etadigan namuna. Bu yanada moslashuvchan va toza kodga olib keladi. Ushbu maqolada "qaramlik in'ektsiyasini tushunish" tushunchasi batafsilroq tushuntiriladi.

Model-view-Controller modeli (MVC) loyihani uchta tarkibiy qismga ajratadi: model, ko'rinish va nazorat qilish. MVC-ramka sifatida burchak burchakdan MVCga ega. Reaktsiya faqat V ga ega - siz M va C ni o'zingiz hal qilishingiz kerak.

2.7 Moslashuvchanlik va mikroservislarga qisqartirish

Siz manba kodiga Javascript kutubxonasini qo'shish orqali React yoki Vue bilan ishlashingiz mumkin. Bu TypeScript-dan foydalanganligi sababli Angularda bu mumkin emas.

Endi biz mikro-xizmatlar va mikroapplar tomon harakatlanmoqdamiz. React and Vue sizga haqiqatan ham zarur bo'lgan narsalarni tanlash orqali dastur hajmini boshqarish uchun ko'proq imkoniyat beradi. Ular avvalgi dastur qismlaridan foydalangan holda SPA-dan mikroservislarga o'tish uchun ko'proq moslashuvchanlikni taklif qilishadi. SPA uchun burchagi yaxshi ishlaydi, chunki mikroservis uchun foydalanish juda shishiradi.

Cory House ta'kidlaganidek:

JavaScript juda tez harakat qiladi va React sizga kutib o'tirishning va sizning ramkangiz yangi bo'lishiga umid qilishning o'rniga yaxshiroq kutubxonalar uchun ilovangizning kichik qismlarini almashtirishga imkon beradi. Kichik, kompozitsion, bitta maqsadli vositalar falsafasi hech qachon uslubdan tashqariga chiqmaydi.

Ba'zi odamlar reaktiv vositalardan tashqari veb-saytlar uchun ham foydalanadilar (masalan, murakkab shakllar yoki sehrgarlar uchun). Hatto Facebook reaktsiyani ishlatadi - asosiy sahifa uchun emas, balki aniq sahifalar va xususiyatlar uchun.

2.8 Hajmi va ishlashi

Barcha funktsiyalarga mos keladigan tomon mavjud: burchak ramkasi juda shishiradi. Gzipped fayl hajmi 143 kVni tashkil qiladi, Vue uchun 23K va React uchun 43k.

React va Vue ikkalasida ham ishlashni yaxshilashi kerak bo'lgan Virtual DOM mavjud. Agar sizni qiziqtirsa, Virtual DOM va DOM o'rtasidagi farqlar va reaktiv.js-da Virtual DOM-ning haqiqiy foydalari haqida o'qishingiz mumkin. Shuningdek, Virtual-DOM mualliflaridan biri Stackoverflow-da ishlash bilan bog'liq savolga javob beradi.

Unumdorlikni tekshirish uchun men ajoyib js-frame-benchmark-ni ko'rib chiqdim. Siz uni o'zingiz yuklab olishingiz va ishga tushirishingiz yoki natijalar jadvalini ko'rishingiz mumkin. Natijalarni tekshirishdan oldin, bilishingiz kerakki, ramkalar mezonlarni aldashadi - bunday ishlashni qaror qabul qilishda ishlatmaslik kerak.

Burchaklar, reaktsiyalar va yo'nalishlarning ishlashi (manba)Xotirani MB-ga ajratish (Manba)

Xulosa qilish uchun: Vue juda yaxshi ishlashga ega va xotirani chuqur ajratadi, ammo bu barcha ramkalar, ayniqsa sekin yoki tezkor (masalan Inferno kabi) ramkalar bilan solishtirganda bir-biriga juda yaqin. Yana bir bor: ishlash ko'rsatkichlari hukm sifatida emas, balki faqat qo'shimcha eslatma sifatida ko'rib chiqilishi kerak.

2.9 Sinov

Facebook reaktiv kodini sinash uchun Jest-dan foydalanadi. Mana, Jest va Mocha o'rtasidagi taqqoslash - va fermentni Mocha bilan qanday ishlatish haqida maqola mavjud. Enzim - bu Airbnb-da (Jest, Karma va boshqa sinov yuguruvchilari bilan birgalikda) ishlatiladigan JavaScript sinov dasturidir. Agar siz ko'proq o'qishni istasangiz, React-da test qilish bo'yicha eski maqolalar mavjud (bu erda va bu erda).

2-burchakda Jasmine test sinovi sifatida mavjud. Erik Elliotning maqolasida aytilishicha, "Jasmin testlarni va tasdiqlarni yozishning millionlab usullariga olib keladi, bu har kimning nima qilayotganini tushunish uchun diqqat bilan o'qishi kerak". Bundan tashqari, o'qish juda shishiradi va o'qish juda qiyin. Angular 2 ning Karma va Mocha bilan birlashishi haqida ba'zi ma'lumotli maqolalar mavjud. Mana, Angular 2 bilan sinov strategiyalari haqida eski video (2015 yildan).

Vue sinov bo'yicha ko'rsatmalarga ega emas, ammo Evan o'zining 2017 yilgi taqrizida jamoa bu borada ishlashni rejalashtirganini yozgan. Ular "Karma" dan foydalanishni maslahat berishadi. Vue Jest bilan birgalikda ishlaydi va sinov dasturida avoriaz ham mavjud.

2.10 Universal va mahalliy ilovalar

Universal ilovalar veb-dasturga, ish stoliga va mahalliy ilovalar dunyosiga ilovalarni tanishtiradi.

Reaktsiya va burchaklarning ikkalasi ham mahalliy rivojlanishni qo'llab-quvvatlaydi. Angular dasturida mahalliy dasturlar uchun NativeScript (Telerik tomonidan qo'llab-quvvatlangan) va gibrid ilovalar uchun Ionic Framework mavjud. React yordamida siz iOS va Android-ning o'zaro dasturlarini yaratish yoki mahalliy ilovalar uchun tabiiy reaktsiya qilish uchun reaktsiya-mahalliy-rendererni tekshirishingiz mumkin. Ko'pgina ilovalar (shu jumladan Facebook; vitr-vitrinni tekshiring) reaktsiya asosida yaratilgan.

Javascript ramkalari mijozga sahifalarni taqdim etadi. Hisoblangan ishlash, umumiy foydalanuvchi tajribasi va SEO uchun bu yomon. Server tomonida oldindan ko'rsatish - bu ortiqcha narsa. Uchala tizimda ham bu borada yordam kutadigan kutubxonalar mavjud. Reaktsiya uchun next.js, Vue-da nuxt.js, Angular-da… .Ungular Universal mavjud.

2.11 Ta'lim egri

Angular uchun aniq o'rganish egri mavjud. U keng qamrovli hujjatlarga ega, ammo ba'zida narsalar g'ashiga tegishi mumkin, chunki narsalar ovoz chiqarib aytgandan ko'ra qiyinroq. Javascriptni chuqur tushunganingizda ham, ramka qalpog'i ostida nimalar bo'layotganini bilib olishingiz kerak. O'rnatish boshida sehrli bo'lib, ko'plab paketlar va kodlarni taklif qiladi. Buni salbiy deb hisoblash mumkin, chunki vaqt o'tishi bilan o'rganishingiz kerak bo'lgan katta, oldindan mavjud ekotizim mavjud. Boshqa tomondan, ma'lum bir vaziyatda yaxshi bo'lishi mumkin, chunki ko'p qarorlar allaqachon qabul qilingan. React yordamida siz uchinchi tomon kutubxonalariga nisbatan juda muhim qarorlarni qabul qilishingiz kerak bo'ladi. Faqatgina React-da davlat boshqaruvi uchun 16 xil oqimli paket mavjud.

Vue o'rganish juda oson. Kompaniyalar Vue-ga o'tishadi, chunki bu kichik yoshdagi ishlab chiqaruvchilar uchun ancha osonroq ko'rinadi. Bu erda siz uning jamoasining "Angular" dan "Vue" ga o'tishini tasvirlaydigan kimdir haqida o'qishingiz mumkin. Boshqa foydalanuvchiga ko'ra, uning kompaniyasida React ilovasi shu qadar murakkab ediki, yangi dasturchi kodni ushlab turolmadi. Vue-ning yordami bilan, kichik va katta yoshdagi ishlab chiquvchilar o'rtasidagi tafovut qisqaradi va ular osonroq va kam xatolar, muammolar va rivojlanish vaqti bilan hamkorlik qilishlari mumkin.

Ba'zi odamlar, React-da qilgan ishlari Vue-da yozilgan yaxshiroq edi, deb da'vo qilishadi. Agar siz tajribasiz Javascript dasturchisi bo'lsangiz - yoki so'nggi o'n yilda asosan jQuery bilan ishlagan bo'lsangiz - Vue-dan foydalanish haqida o'ylashingiz kerak. Paradigma o'zgarishi React-ga o'tishda aniqroq namoyon bo'ladi. Vue oddiy javascript-ga o'xshaydi, shu bilan birga ba'zi yangi g'oyalarni taqdim etadi: komponentlar, voqealar asosida yaratilgan model va ma'lumotlarning bir tomonlama oqimi. U shuningdek, kichik izga ega.

Shu bilan birga, Angular va React o'zlarining ish uslubiga ega. Ular sizning yo'lingizga tushishi mumkin, chunki narsalarni o'z holiga keltirish uchun amaliyotingizni o'zgartirishingiz kerak. Bu sizga zarar keltirishi mumkin, chunki siz kamroq moslashuvchansiz va tik o'rganish chizig'i mavjud. Bu shuningdek foyda keltirishi mumkin, chunki siz texnologiyani o'rganayotganda to'g'ri tushunchalarni o'rganishga majbur bo'lasiz. Vue-da siz eski Javascript uslubidagi narsalarni qilishingiz mumkin. Bu boshida osonroq bo'lishi mumkin, ammo agar ishlar to'g'ri bajarilmasa, uzoq muddatda muammoga aylanishi mumkin.

Nosozliklarni tuzatish haqida gap ketganda, React va Vue sehrlari kamroq bo'ladi. Xatolarni qidirish osonroq, chunki qarash joylari kam va stack izlari o'z kodlari bilan kutubxonalar o'rtasidagi farqni yaxshiroq o'zgartiradi. React bilan ishlaydigan odamlar hech qachon kutubxonaning boshlang'ich kodini o'qimasliklari kerakligini aytadilar. Biroq, Angular dasturini nosozliklarini hal qilayotganda, asosiy modelni tushunish uchun ko'pincha Angular ichki qismini disk raskadrovka qilish kerak. Yorqin tomonda, xato haqidagi xabarlar 4-burchakdan boshlab aniqroq va ko'proq ma'lumotga ega bo'lishi kerak.

2.12 Qopqoq ostidagi burchak, reaktsiya va Vue

Siz manba kodini o'zingiz tekshirmoqchimisiz? Qanday narsalar his etilishini ko'rmoqchimisiz?

Ehtimol, avval Github omborlarini tekshirishni xohlaysiz: Reaktsiya (github.com/facebook/react), Angular (github.com/angular/angular) va Vue (github.com/vuejs/vue)

Sintaksis qanday ko'rinadi? ValueCoders Angular, React va Vue sintaksisini taqqoslaydi.

Ishlarni ishlab chiqarishdagi asosiy manba kodi bilan birgalikda ko'rish ham yaxshi. TodoMVC turli xil Javascript ramkalari bilan yozilgan o'nlab bir xil Todo ilovalarini ro'yxatiga kiritdi - siz Angular, React va Vue echimlarini taqqoslashingiz mumkin. RealWorld real-amaliy dasturni (O'rta klon) yaratadi va ularda Angular (4+) va React (Redux bilan) echimlari mavjud. Vue - bu ish jarayonida.

Siz ko'rib chiqishingiz mumkin bo'lgan ba'zi haqiqiy dunyo ilovalari ham mavjud. Reaktsiya uchun echimlar:

  • Do (React & Redux-da yaratilgan ajoyib haqiqiy dunyo yozuvlarini boshqarish dasturi)
  • sound-redux (React & Redux-da yaratilgan Soundcloud mijozi)
  • Brainfock (React yordamida yaratilgan loyiha va jamoani boshqarish echimi)
  • re-hn & reaktsiya-yangiliklar (Hacker news clones)
  • reaktsiya-ona-whatsapp-ui + qo'llanma ("reaksiya-ona" bilan Whatsapp-ning kloni)
  • Feniks-trello (Trello kloni)
  • slack-klon + boshqa dars (Slack clones)

Burular uchun ba'zi ilovalar mavjud:

  • angular2-hn & hn-ng2 (Hacker News clones + Ashwin Sureshkumar tomonidan yaratilgan yangi darslik)
  • Redux va burchakli-2 (Twitter-ning kloni)

Vue uchun echimlar ham mavjud:

  • vue-hackernews-2.0 va Loopa yangiliklari (Hacker News klonlari)
  • vue-soundcloud (a Soundcloud demo)

Xulosa

Endi ramka to'g'risida qaror qabul qiling

React, Angular va Vue juda ajoyib va ​​ularning hech biri boshqalardan ustun turmaydi. Sizning ichakdagi his-tuyg'ularingizga ishoning. O'yin-kulgining beparvosizligi sizning qaroringizga yordam berishi mumkin:

Nopok kichik sir shundaki, "zamonaviy JavaScript taraqqiyoti" aslida veb-saytlarni yaratish bilan hech qanday aloqasi yo'q - bu kutubxonalar yaratadigan odamlar tomonidan qo'llanmalar yozadigan va kurslar yozadigan odamlar tomonidan ishlatilishi mumkin bo'lgan to'plamlar. o'rgatishi mumkin. Haqiqatan ham foydalanuvchilarning o'zaro munosabatlari uchun hech kim biror narsa qurayotganiga amin emasman.

Bu mubolag'a, albatta, lekin buning uchun haqiqat donasi bo'lishi mumkin. Ha, Javascript ekotizimida juda ko'p shov-shuv mavjud. Ehtimol qidiruv paytida siz boshqa ko'plab jozibali alternativalarni topishingiz mumkin - eng yangi va eng yaxshi ramkaga berilmaslikka harakat qiling.

Men nimani tanlashim kerak?

Agar siz Google-da ishlasangiz: burchakli

Agar siz TypeScript-ni yaxshi ko'rsangiz: burchakli (yoki reaktsiya)

Agar siz ob'ektga yo'naltirilgan-dasturlashni yaxshi ko'rsangiz (OOP): Burchaklar

Agar sizga rahbarlik, struktura va yordamchi yordam kerak bo'lsa: burchakli

Agar siz Facebook-da ishlasangiz: Reaktsiya qiling

Agar siz moslashuvchanlikni yoqtirsangiz: Reaktsiya qiling

Agar siz katta ekotizimlarni yaxshi ko'rsangiz: Reaktsiya qiling

Agar siz o'nlab paketlardan birini tanlashni yoqtirsangiz: reaktsiya qiling

Agar siz JS-ni va "hamma narsa-bu Javascript-yondashuv" ni yaxshi ko'rsangiz: Reaktsiya qiling

Agar chindan ham toza kodni yoqtirsangiz: Vue

Agar siz eng oson o'rganish chizig'ini xohlasangiz: Vue

Agar siz eng engil ramkani xohlasangiz: Vue

Agar siz bitta faylda tashvishlarni ajratishni xohlasangiz: Vue

Agar siz yolg'iz ishlayotgan bo'lsangiz yoki kichik jamoangiz bo'lsa: Vue (yoki reaktsiya)

Agar sizning ilovangiz juda katta bo'lishga moyil bo'lsa: burchakli (yoki reaktsiya)

Agar siz reaktivga asoslangan ilova yaratmoqchi bo'lsangiz: Reaktsiya qiling

Agar siz hovuzda juda ko'p ishlab chiqaruvchilarga ega bo'lishni istasangiz: burchak yoki reaktsiya

Agar siz dizaynerlar bilan ishlasangiz va toza HTML-fayllarga muhtoj bo'lsangiz: Burchak yoki Vue

Agar sizga Vue yoqsa, lekin cheklangan ekotizimdan qo'rqsangiz: Reaktsiya qiling

Agar qaror qila olmasangiz, avval React, keyin Vue, keyin Angularni o'rganing.

Xo'sh, siz qaror qildingizmi?

Yeeesss, siz buni qildingiz!

Barakalla! Qanday qilib Angular, React yoki Vue-da rivojlanishni boshlash haqida o'qing (tez orada yangilanishlar uchun meni Tvitterda kuzatib boring).

Ko'proq manbalar

  • Reaktsiya JS, Angular va Vue JS - Tezstart va Taqqoslash (8 soatlik kirish va uchta tizimni taqqoslash)
  • Burchakli va reaktsiya (vs. Vue) - YO'Q to'xtatuvchisi (Dominik T tomonidan qisqa, ammo mukammal taqqoslash)
  • Rejim - raqsning eng zo'r chiqishi (Erik Elliot tomonidan taqqoslash)
  • React vs Angular vs. Ember va Vue.js (Gökhan Sari tomonidan yozilgan shaklda uchta ramkani taqqoslash)
  • Reaktsiya va burchakli (ikki doirani aniq taqqoslash)
  • Vue reaktsiya bilan taxt uchun kurashishi mumkinmi? (ko'plab kod namunalari bilan yaxshi taqqoslash)
  • 10 ta sabab, nima uchun men burchaklardan reaktsiyaga o'tdim (Robin Vieruchning boshqa yaxshi taqqoslashi)
  • JavaScriptning barcha ramkalari juda dahshatli (Matt Burgessning barcha asosiy ramkalari haqida ajoyib yangilik)

Qiziqish uchun rahmat. Men biron bir muhim narsani unutdimmi? Siz boshqacha fikrdasizmi? Har doim fikr-mulohazalarni qabul qilishdan xursandman.

Yangilanishlar va boshqa narsalar uchun meni Twitter-da kuzatib boring: @jensneuhaus -