Angle vs React vs Vue 2022
Her FRETEND geliştiricisi tarafından duyulan web uygulamaları oluşturmak için üç çerçeve vardır: React, Vue.js ve Angular. React bir UI kütüphanesidir, Angular tam bir çerçeve çerçevesidir, Vue.js ise ilerici bir çerçevedir. Neredeyse dönüşümlü olarak ön uç uygulamalar oluşturmak için kullanılabilirler, ancak yüzde 100 aynı değildir, bu nedenle bunları karşılaştırmak ve farklılıkları anlamak mantıklıdır. Her bileşen tabanlı çerçeve ve UI özelliklerinin oluşturulmasına hızlı bir şekilde izin verir. Bununla birlikte, hepsinin farklı yapıları ve mimarisi var-bu yüzden önce, arkasındaki felsefeyi anlamak için mimari farkı göreceğiz.
React Reaksiyon Mimarisi belirli proje yapıları uygulamaz ve aşağıdaki “Merhaba Dünya” nın resmi örneğinden görebileceğiniz gibi, React’i yalnızca birkaç kod satırı ile kullanmaya başlayabilirsiniz. Reactdom.Render (
Merhaba dünya!
,
Document.getElementById (‘kök’)
);
React, belirli proje yapılarını uygulamadan öğeleri oluşturmak için bir UI kütüphanesi olarak kullanılabilir ve bu yüzden tam bir çerçeve değildir. React öğeleri, React uygulamasının en küçük yapı taşıdır. DOM öğesinden daha güçlüdürler çünkü React Dom her değişiklik olduğunda verimli bir şekilde yapmayı sağlar.
Bileşenler, bağımsız kısmı belirleyen ve tüm uygulamalarda kullanılmak üzere yeniden kullanılabilen daha büyük yapı taşlarıdır. Öğretim yardımcıları olarak adlandırılan girdileri kabul ederler ve daha sonra kullanıcıya görüntülenen öğeler üretirler. React JavaScript’e dayanır, ancak çoğu aynı anda HTML ve JavaScript içeren öğeler oluşturmanızı sağlayan bir sözdizimi uzantısı olan JSX (JavaScript XML) ile birleştirilir. JSX ile ne yaparsanız yapın API JavaScript React ile de yapılabilir, ancak çoğu geliştirici JSX’i tercih eder çünkü daha sezgiseldir. Vue Library Core Vue.js yalnızca görünüm katmanına odaklanır. Buna aşamalı bir çerçeve denir, çünkü işlevini gerçek bir çerçeveye dönüştürmek için resmi paketlerle ve Vue yönlendirici veya Vuex gibi üçüncü taraflarla genişletebilirsiniz. Vue tamamen MVVM (Model-ViewModel) paterniyle ilişkili olmasa da, tasarım kısmen bundan ilham alıyor. Vue ile, uygulama verilerinin çerçevenin en son görünümü oluşturmasını sağlayacak şekilde işlenmesini sağlamak için çoğunlukla ViewModel katmanında çalışacaksınız. Vue’nun sözdizimini şablonlama, bir görünüm bileşeni oluşturmanıza ve yönü ve özel özellikleri ile bilinen HTML’yi birleştirmenizi sağlar. JavaScript ve Raw JSX de desteklenmesine rağmen, bu şablon sözdizimi tercih edilir.
VUE’deki bileşenler küçük, bağımsızdır ve uygulama boyunca yeniden kullanılabilir. HTML, CSS ve JavaScript içeren Vue ile tek dosya bileşenleri (SFC), böylece ilgili tüm kodların tek bir dosyada olması. SFC, kodu Vue.js projesinde, özellikle de daha büyük projede ayarlamanın önerilen bir yoludur. SFC’yi işleyen JavaScript koduna dönüştürmek için webpack veya tarayıcı gibi araçlara ihtiyaç vardır. Bu makaledeki açı, şu anda AngularJS olarak bilinen çerçevenin ilk versiyonunu değil, Angular 2’yi tartıştım. Orijinal çerçeve olan Angularjs, MVC (model-görüntüleme kontrolör) çerçevesidir). Ancak açısal 2’de, MV*-patterns ile katı bir ilişki yoktur, çünkü aynı zamanda bileşenlere dayanır. Angular’daki projeler modüller, bileşenler ve hizmetler halinde düzenlenmiştir. Her açısal uygulamanın en az bir kök bileşeni ve bir kök modülü vardır. Angular’daki her bileşen bir şablon, uygulama mantığını tanımlayan bir sınıf ve meta veri (dekoratör) içerir. Bir bileşen için meta veriler, Angular’ın görünüşünü oluşturmak ve sunmak için gereken kurucu blokları nerede bulduğunu söyler. Açısal şablon HTML ile yazılmıştır, ancak reaktif veriler üretmek ve diğerleri arasında birkaç öğe oluşturmak için özel yönlü açısal şablonun sözdizimini de içerebilir. Açısal hizmetler, bileşenler tarafından veri almak veya girişi doğrulamak gibi iş mantığı görevlerini devretmek için kullanılır. Onlar açısal uygulamanın farklı bir parçasıdır. Angular kullanımını uygulamasa da, uygulamaların yeniden kullanılabilecek farklı hizmetlerin bir koleksiyonu olarak düzenlenmesi şiddetle tavsiye edilir.
Angular TypeScript’te inşa edildi, bu nedenle kullanımı en sorunsuz deneyimi elde etmesi tavsiye edilir, ancak sıradan JavaScript de desteklenir. React’in tepkisinin popülaritesi, GitHub’da 160K yıldızı ile en popüler JavaScript projelerinden biridir. Bu Facebook tarafından geliştirildi ve yönetildi ve projelerinin çoğunda dahili olarak kullanıldı. Buna ek olarak, bu kullanımın istatistiklerine göre bu 2 milyondan fazla web sitesini desteklemektedir. Vue üç çerçeve olan Vue, GitHub’da 176 bin yıldızla en çok yıldız var. Proje eski Googleer Evan You tarafından geliştirildi ve yönetildi. Bu, açık kaynak topluluğunda çok güçlü bir bağımsız bir projedir ve Google tarafından geliştirilen ancak Search veya YouTube gibi amiral gemisi ürünlerinde garip bir şekilde kullanılmayan, buildwith.sudut Angular’a göre 1 milyondan fazla web sitesi tarafından kullanılmaktadır. Bu genellikle şirket projelerinde kullanılır ve yerleşik verilere dayalı 97.000’den fazla web sitesini destekler. Bu, GitHub’da 68K yıldızı ile üç çerçeve arasında en az yıldız. Bununla birlikte, açısal 1’den açısal 2’ye geçerken, 59K yıldızı olan AngularJS projesine devam etmek yerine tamamen yeni bir depo yaptılar. Açık kaynak paket ekosistemi, uygulamalar geliştirirken değerli zamanınızı kaydeder. Sadece bu değil, aynı zamanda özellikle savaşta test edildikleri için yapılan bileşenlerden ve paketlerden daha iyi.
Yeni özellikler oluşturmanıza yardımcı olabilecek hazır bileşenlerin, temaların ve diğer araçların kullanılabilirliğini görmek önemlidir. Reaksiyon Birçok ön uç uygulaması, kim girdi ve diğer kullanıcı ayarları gibi bilgileri depolamak için küresel durum yönetimine dayanır. JavaScript Durum Yönetimi için en popüler proje REDUX’tur. Çoğu geliştirici, Redux ekibi tarafından yönetilen Redux için resmi bağlama reaksiyonunu kullanır. React’in popülaritesi nedeniyle, giriş bileşenleri bulmak ve kullanıma hazır öğeler çok kolay hale gelir. Her şey sadece Google veya GitHub’ı arayarak. React ekosistemi, React’te yazılmış bir kod tabanından orijinal iOS ve Android uygulamalarını oluşturmanıza izin veren React yerlileri de içerir. Bu nedenle, React web teknolojisini kullanarak hücresel uygulamalar oluşturmak için doğru seçim olabilir. React, MongoDB, ExpressJS, React ve Nodejs içeren bir MERN yığınının bir parçasıdır. Bu kombinasyonla ilgili en güzel şey, bir dilin – javascript – tüm uygulamayı hareket ettirmesidir. Vue Redux VUE’de kullanılabilse de, resmi bir bağlama yoktur. Ancak endişelenmenize gerek yok çünkü Vuex, VUE uygulaması için özel olarak oluşturulan resmi bir devlet yönetimi kütüphanesidir. Vue ile çok iyi entegre olmanın yanı sıra, bir Vue geliştirme aracı kullanarak hata ayıklamak kolaydır.
Vue’nun ilk günlerinde, kullanıma hazır bileşenler bulmak daha zordur. Topluluk geliştiği için, gelişiminizi hızlandırmak için kullanabileceğiniz çeşitli girdi bileşenleri ve gelişmiş öğeler vardır. Hücresel uygulamaların geliştirilmesi için WEEX adlı yeni bir proje var. Weex, Alibaba tarafından geliştirildi ve kullanıldı, ancak React Native kadar olgun ve güçlü değil. Dahası, bu proje Çin’de daha fazla geliştirildiği ve kullanıldığı için, İngilizce sorunlara belgeler ve çözümler bulmak daha zordur. Vue, Laravel ile iyi entegre edilmiştir ve bu yüzden genellikle birlikte kullanılırlar. Laravel, yeni projelerde VUE’nin kullanımını sağlamak için eksiksiz JavaScript ve CSS iskele sunuyor. Durum Yönetimi açısı Açısal olarak, NGRX projesini kullanabilirsiniz. Bu Redux’tan esinlenmiştir, ancak özellikle açısal için yapılmıştır. Vue ve React gibi, projenize aktarabileceğiniz birçok hazır bileşen vardır. Açısaldan biraz farklı olan, açısal malzeme projesinde birçok resmi bileşenin olmasıdır. Bu, Google’ın açısal uygulamalar için malzeme tasarım bileşenleri sunan resmi bir projedir. NativeScript kullanarak Angular’da platformlar arası hücresel uygulamalar oluşturabilirsiniz. Bu da VUE’yi destekler, ancak açısal destek daha olgundur. Angular, Angular’ı MongoDB, ExpressJS ve Nodejs ile birleştiren ünlü ortalama bir yığının bir parçasıdır. Bir MERN yığınına benzer şekilde, tamamen ön uç ve arka uç için JavaScript’e bağlıdır. General Angular, React ve Vue teknolojisi, PWA olarak da bilinen aşamalı web uygulamaları geliştirmek için kullanılabilir.
PWA, hücresel bir uygulama değil, akıllı telefon kullanıcıları tarafından ana ekranlarına kısayol olarak eklenebilen ve orijinal hücresel uygulamalara benzer bir görünüm ve hissedilen bir web uygulamasıdır. Her bir çerçeve için daha önce yapılan premium şablonları ve uygulamaları da bulabilirsiniz, ancak Angular ve React Vue’dan daha fazla premium seçeneğe sahiptir. Performanslar Bir çerçeve veya kütüphane seçerken, performansı da düşünmeniz gerekir. Birçok durumda, özellikle küçük bir proje oluşturuyorsanız, performans konusunda endişelenmenize gerek yoktur. Ancak, kapsam ve karmaşıklık içinde ne kadar çok proje büyürse, performans endişe olabilir (ve olacaktır). Geliştirme kalitesinin ve web performansı açısından en iyi uygulamaları takip etmenin, çerçevenin seçiminden daha önemli olduğunu belirtmek önemlidir. Ancak birkaç metrik ve performans farklılıkları olduğu için, bunu kontrol edeceğim ve her birinin geliştirme çabalarınızı nasıl etkileyebileceğini açıklayacağım. JS Framework Benchmark: Angle vs reaksiyona karşı js çerçevesinden vue sonuçları, hepsinin tabloda sıralar yapmak veya satır eklemek gibi çoğu ölçütte iyi performans gösterdiğini gösterin. Yukarıda gördüğünüz gibi, açısaldan çok daha yavaş ve tepki satır seçimi. Öte yandan, açısal ve reaksiyon, satır değişiminde çok verimli değildir.
Bu, ölçüt oluşturmada tek önemli farktır ve birçok durumda gerçek sonuçlar üretmez.Bir satır seçmek, hat alışverişi yapmaktan daha yaygın bir işlev olduğundan, bu kıyaslamanın Vue’yu açısal ve tepki veren en üst pozisyonu paylaşan üçüncü sıraya yerleştirdiğini söyleyeceğim.Bellek ve önyükleme süresi açısından, React ve Vue çok iyi bir puana sahiptir, ancak açısal biraz daha yavaştır.Angular, temel komut dosyasını güçlendirmek için 150 MD alır ve çalıştırılması için daha fazla bellek gerektirir.Perf Track: Google Chrome Labs tarafından açısal vs React ve Vue Perf Track, binlerce web sitesinden üretim verilerini gösterir.Bu istatistikler sadece tercih edilen çerçeveden değil, diğer birçok şeyden etkilenir, aynı zamanda sayıya bakalım.
Vue ve React web sitesinin ilk oruç boyası, kullanıcılara içeriği güçlendirmek ve sunmak için daha fazla zaman gerektiren Angular’a kıyasla bu metrik için daha yüksek sırada yer aldı. En büyük açısal içerik boyası, kabul edilebilir bir aralıkta yazdıran açısal web sitesinin sadece yüzde 27’si ile tam sayfaları oluşturmada üç çerçeve arasında en son boya. Üç çerçeve için girişteki ilk gecikme, web sitesinin yüzde 80’inden fazlası, kullanıcının sayfa ile etkileşime girmesine kadar ne kadar sürdüğünü gösteren ilk giriş gecikmesi için kabul edilebilir bir aralıktadır. Uygulamanın en hafif JavaScript baytları VUE ile geliştirilmiştir, VUE uygulamasının yüzde 68’i JavaScript 1MB’den az içermektedir. Öte yandan, açısal ve reaksiyon uygulamaları daha büyük bir kod boyutuna sahip olma eğilimindedir. Bu metriği nasıl kullanacağınız bu sayıların eğilimini görebilirsiniz, ancak çok hızlı sonuç çıkarmamalısınız. Örneğin son resim için, açıklama, daha büyük projeler için açısal kullanılırken VUE’nin daha hafif uygulamalar geliştirmek için kullanılması olabilir. İstatistikler, iyi kararlar vermenize yardımcı olabilir, ancak bir çerçevenin diğerinden daha hızlı veya daha iyi olduğunu kanıtlamak için kullanamazsınız. Gelişmiş özellikler Daha gelişmiş uygulamalar için, kullanılan ön uç çerçevesi performansı artıran ve daha iyi boşaltılabilecek çeşitli görevler yapabilmelidir. Anahtar olan iki teknoloji sunucu tarafı oluşturma (SSR) ve sanallaştırmadır.
React reaksiyonu, resmi ReactdomServer paketi ile sunucu tarafı oluşturmayı destekler. Sanallaştırma için, React Virtualize adlı popüler bir üçüncü taraf aracı kullanabilirsiniz. Vue Render Server tarafı, resmi bir SSR paketi ile de Vue’da desteklenir. Ayrıca, VUE ve Destek SSR üzerine inşa edilen Nuxt.js çerçevesini de kullanabilirsiniz. Ne yazık ki, Vue’daki sanallaştırma seçeneği çok güçlü değil. Bence, Sanal Vue Scroll listesi sanal rulolar için en iyi çözümdür, ancak tepki ve açı seçenekleri gibi biraz sorunlu ve kararsızdır. Açısal Angle, SSR için resmi bir evrensel açısal pakete ve sanal yükseltme ve verimli büyük oluşturma listesi için resmi bileşenlere sahiptir. Öğrenme eğrisi Bu çerçevelerin her birini öğrenmek ne kadar kolaydır? Bu soruyu cevaplamak için, tanıttıkları her çerçevenin ve kavramların karmaşıklığını görmemiz gerekir. En temel kullanım kullanımındaki reaksiyon, React üç çerçevenin en karmaşıktır. Bunun nedeni, yalnızca kütüphaneyi içe aktarmanız gerektiğidir, böylece React uygulamanızı birkaç kod satırıyla yazmaya başlayabilirsiniz. Ancak, Hello World örneği dışında, çoğu reaksiyon uygulamaları bileşenlere dayanmaktadır ve sadece sayfada bazı öğeleri oluşturmakla kalmaz. Bazı garip veya zor geliştiricilere göre React hakkında bir şey, JSX’i incelemenin tek bir yol olmasıdır. Raw JavaScript’i de kullanabilirsiniz, ancak React geliştiricilerin çoğu JSX kullandığından, öğrenmek neredeyse kaçınılamaz.
Bu, reaksiyon öğrenme eğrisini biraz daha dik hale getirebilecek ana şeydir, ancak bunun yanı sıra, JavaScript bilen ve web geliştirme kavramını anlayan geliştiriciler için öğrenmesi kolay bir kütüphane. Vue Vue, reaksiyondan ayarlanması biraz daha karmaşıktır. HTML’nizde kullanabileceğiniz bileşenleri belirlemek için bir kütüphane olarak kullanabilirsiniz – ancak React’e benzer şekilde, çoğu projenin oluşturulmasının yolu bu değildir. Çoğu VUE projesi, App.vue adlı bir kök bileşeni ve çeşitli şeyler görüntülemek için bir dizi çocuk bileşeni olacaktır. Sözdizimi söz konusu olduğunda, öğrenmeniz gereken tek yeni şey, Vue şablonunun sözdizimidir, bu da HTML’yi biliyorsanız anlaşılması çok kolaydır. Koşullu oluşturma ve oluşturma listeleri için V-IF ve V-for gibi temel yön, yeni başlayanlar için bile anlaşılması kolaydır. Buna ek olarak, tek dosya bileşeni Vue tüm ön uç kodlarını tek bir yerde saklayarak yeni projeleri yönetmeyi kolaylaştırır. Vue, sezgisel sadeliği ve sözdizimi nedeniyle öğrenmesi en kolay olanıdır. Açısal açı, üçünün en karmaşık proje yapısına sahiptir ve bu tam bir ön uç çerçeve olduğundan, daha fazla kavrama bağlıdır. Bileşenlere ek olarak, Angular modülleri ve hizmetleri destekler. Kod tabanınızı belirli bir şekilde yazmanızı ve tasarlamanızı bekler, geliştirildiğinde projenizin korunmasını kolaylaştırır. Sözdizimi için, Angular TypeScript ile en iyi şekilde çalıştığından, açısal bir proje oluştururken TypeScript’i bulmanız önemlidir.
Vue Vue 3 Eylül 2020’de piyasaya sürüldü ve büyük projelerde Vue 2’nin sahip olduğu birçok ciddi sorunu ele aldı. Bu, React kancalarından esinlenen bir API bileşimi sunar ve tüm bileşenlerde mantığın yeniden kullanılmasını kolaylaştırır. Tüm proje, projenin yönetilmesini kolaylaştırırken yeni Vue projesindeki TypeScript’in desteğini artıran TypeScript’te yeniden yazılmıştır. Vue 3, gerekli olan bir artıştır ve VUE’yi büyük ölçekli projeler için daha uygun hale getirir. Vue’nun haftalık indirmeleri geçen yıldan bu yana yüzde 87 arttı ve en hızlı büyüyen Vue çerçevesini yaptı. Vue bu büyüme oranını koruyabilirse, kesinlikle açısal aşacaktır. Açısal açı son zamanlarda Ivy derleyicisini tanıttı. Bu, üretim süresini azaltır, varlıkları optimize eder, daha hızlı test sağlar ve genellikle geliştirici deneyimini geliştirir. Açısal ekip, yılda birkaç kez büyük bir güncelleme yayınladı, bu da yeni özellikler içerebilir veya sadece yeni bir tarayıcı sürümü ile çerçeveyi hızlandırabilir. Angular, geçen yıldan bu yana haftalık indirmelerde yaklaşık yüzde 50 büyüdü, bu yüzden bu hala popüler bir proje. Açısal, reaksiyon ve vue sonuçlarının hepsi çok aktif gelişmede. Düzenli olarak yeni bir versiyon yayınladılar ve mevcut sürdürdüler. Her durumda mevcut destek seviyesi yüksek olduğundan, bu çerçevelerden birini güvenli bir şekilde kullanabilirsiniz. Angular’ın eskisi kadar hızlı büyümediğini, Vue – yeni başlamış olsa da – hızla gelişmiş gibi görünüyor.