açısal vs. Tepki: Hangisini Seçmelisiniz?
Yayınlanan: 2021-10-06Bu makale, web uygulaması geliştirme için popüler araçlar olan React ve Angular arasındaki önemli özellikleri ve farklılıkları tartışıyor.
Hem Angular hem de React, web uygulaması geliştirme için kullanılır. Google trendlerinde eşit derecede popülerdirler. Angular kendisini önde gelen bir web çerçevesi olarak kurmuş olsa da, React 2018'den beri katlanarak büyüdü. Angular, MVC mimarisini takip eden tam teşekküllü bir çerçevedir. React, hafif uygulamalar için kullanımı kolaylaştıran bazı heyecan verici özelliklere sahiptir.
Temel farklılıklara girmeden önce her ikisini de biraz anlayalım.
açısal nedir?
Angular, geliştiricilerin birlikte çalışması için bir yapı sağlayan bir web çerçevesidir. Dinamik web uygulamaları oluşturmak için kullanılır. Angular açık kaynak kodludur ve TypeScript ile yazılmıştır. Angular'ın en son sürümü, Temmuz 2021'de yayınlanan 12.1.4'tür. Angular, geliştiricilerin JavaScript'i ana istemci tarafı betik dili olarak kullandıklarında karşılaştıkları zorlukları ortadan kaldırır.
Angular'ı harika, kullanımı kolay yeni özelliklere sahip bir HTML uzantısı olarak düşünün. Daha fazlasını anlamak için basit bir kod yazalım:
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular.min.js"></script> <body> <style> form.ng-dirty { color:orange; } form.ng-pristine { color:blue; } </style> <form ng-app=""> <p><b>What's your name?</b> <input type="text" ng-model="user_name"></p> <h1>Hi {{user_name}}! You look great today!</h1> </form> </body>Yukarıdaki kodda, kullanıcı metin kutusuna bir isim yazar. Yazmaya başladıkları anda metin rengi değişir. Ad, bir karşılama mesajıyla görüntülenir.
- Burada açısal bir form kullanıyoruz ve başka herhangi bir CSS öğesi gerektirmiyor.
- ng-dirty ve ng-pristine gibi form öğeleri, renk değişiklikleriyle ilgilenir.
- ng-app, açısal uygulamanın adıdır.
- ng-model niteliği, HTML'nin name niteliğine benzer.
- Çift çiçek parantezlerini kullanarak metin değerini görüntülüyoruz.
Angular'ın denetleyici, bileşenler, modüller vb. gibi tüm özelliklerini kullanmak için, bu makalenin kapsamı dışında olan npm paketini (node.js ile) kurmalıyız.
Angular'ı öğrenmek için bu kursa göz atın.
React nedir?
React, Facebook tarafından sağlanan ücretsiz ve açık kaynaklı bir kütüphanedir . UI çerçevelerine kıyasla daha hızlıdır ve ayrıca diğer çerçevelerle entegrasyon esnekliği sağlar.
React'in bildirimsel kodlama yaklaşımını kullanarak yeniden kullanılabilir UI bileşenleri oluşturabiliriz. Bu yaklaşım, UI geliştirme çabasını önemli ölçüde azaltır. Basit bir tepki uygulaması, aşağıdaki gibi birkaç yeniden kullanılabilir bileşene ayrılabilir:

Gerçek dünyadaki bir uygulama için bileşenler ve modüller gibi React'in tüm özelliklerini kullanmak için node.js'yi yüklemeniz gerekir. React'in özelliklerini anlamak için yukarıdaki örneği tekrar yazalım:
<html> <body> <div id="root"></div> <!—- add all the libraries --> <script src="https://unpkg.com/@babel/standalone/babel.js"></script> <script src="https://unpkg.com/react/umd/react.development.js"></script> <script src="https://unpkg.com/react-dom/umd/react-dom.development.js"></script> <script type="text/babel"> // Add new React component to get and print user's name class WelcomeMessage extends React.Component { constructor(props){ super(props); this.state = { name: '' }; } handleChange = event => { this.setState({ name: event.target.value }); }; // render the UI and display result when the state changes render() { return ( <React.Fragment> <form> <label htmlFor="name">Enter your name: </label> <input type="text" name="name" value={this.state.name} onChange={this.handleChange} /> </form> <h1>Hey {this.state.name}! You look great today!</h1> </React.Fragment> ); } } ReactDOM.render( <WelcomeMessage />, document.getElementById('root') ); </script> </body> </html>Kodun herhangi bir tarayıcıda derlenmesinin kolay olması için burada Babel derleyicisini kullanıyoruz. Aksi takdirde, React kodunun bir kısmını kullanamayabiliriz.
Yukarıdaki kod, yalnızca bu alanı görüntülemek için çok uzun görünebilir. Gerçek bir dünya, yeniden kullanabileceğimiz bu tür birçok bileşene sahip olacak ve bu nedenle bu çabaya değer.
Komut dosyası bileşeninin içinde HTML kodu kullandığımızı fark ettiniz mi? Nasıl? Yanıtı şu bölümde arayın: React'in Özellikleri.
Açısalın Özellikleri
Angular'ın özelliklerini anlayalım:
- Geliştiriciler, yoğun bir yükleme işlemi olmadan hızlı bir şekilde aşamalı uygulamalar oluşturabilir.
- Masaüstü ve mobil uygulamalar oluşturmak için uygundur.
- Çapraz platform desteği.
- Uygulamaya bir yapı sağlar (MVC mimarisi).
- Çok az kodlama gerektiğinden geliştirmeyi hızlandırır.
- İyi performans.
- Kolayca UI görünümleri oluşturmak için güçlü şablon sözdizimi.
- Kod, basit bir metin düzenleyicide veya IDE'de geliştirilebilir.
React'in Özellikleri
React'in bazı tipik özellikleri şunlardır:
- ReactJS, JavaScript ve HTML kodunun tek bir dosyaya yazılabilmesi için JSX (JavaScript XML) olarak bilinen HTML benzeri sözdizimini kullanır.
- ReactJS uygulamaları, kendi kontrol ve mantığına sahip yeniden kullanılabilir bileşenlere sahiptir.
- Bileşenler değişmezdir, bu nedenle uygulama boyunca tek yönlü bir bağlama ve makul kontrol sağlar.
- Tek yönlü bağlama, uygulamaları daha esnek ve verimli hale getirir.
- Sanal DOM temsilini destekler. Gerçek DOM, yalnızca DOM temsillerinde değişiklikler varsa değişir. Bu hafızadan tasarruf sağlar.
- Yüksek performans ve platformlar arası destek.
Açısal Uygulamalar
Angular'ı büyük ölçekli kurumsal uygulamalar, tek sayfalık uygulamalar ve Aşamalı Web Uygulamaları (PWA'lar) için kullanabiliriz.

Birçok ünlü işletme açısal kullanır. Gmail ve YouTube TV, Angular üzerine kurulmuştur. Bu uygulamalar Android, Apple vb. gibi çeşitli platformlarda mevcuttur.
YouTube TV'ye FireTV, Chromecast ve diğer birçok platformdan erişilebilir.
Angular'ın diğer bazı uygulamaları arasında e-öğrenme platformu Udacity, Santander ve PayPal gibi bankacılık uygulamaları, Wix web uygulama portalı ve Microsoft Office Web bulunmaktadır.
React Uygulamaları
React, Tek Sayfa Uygulamalarının (SPA) kullanıcı arayüzünü oluşturmak için yaygın olarak kullanılır. Hem mobil hem de masaüstü uygulamaları için sorunsuz çalışır. Facebook, Bloomberg, Airbnb, Instagram ve Skype, React JS'ye dayalı bir çerçeve olan React Native kullanan web uygulamalarına örnektir.
React, topluluk odaklıdır ve bu da onu UI uygulamalarını hızlı bir şekilde oluşturmak için popüler bir seçim haline getirir.
Angular'ın Avantajları
Angular'ın bazı önemli avantajlarını tekrarlayalım:
- Bağımlılık ekleme, yönlendirme gibi TypeScript işlevlerini kullanan etkili platformlar arası UI çözümü
- Hızlı uygulama yükleme ve geliştirilmiş uygulama performansı
- Angular CLI, mükemmel topluluk desteği, iki yönlü veri bağlama ve farklı yükleme gibi özellikler sayesinde daha hızlı geliştirme
- Modüller ve bileşenler, kodu okunabilir hale getirir ve hata ayıklamayı ve test etmeyi kolaylaştırır
- Bağımlılık ekleme ve Angular hizmetler gibi güçlü tasarım kalıpları
React'in Avantajları
React, onu Angular'dan ayıran bazı çekici özelliklere sahiptir:
- Bildirimsel bir yaklaşım izler - bu, uygulamanın durumunda herhangi bir değişiklik olduğunda, React'in gerekli bileşenleri güncellediği ve veriler değiştiğinde bunları oluşturduğu anlamına gelir
- React, istemci tarafı kitaplığı olarak veya React Native ve Node.js kullanılarak sunucuda kullanılabilir.
- Kolay bir öğrenme eğrisi, iyi belgeler, harika topluluk desteği ve öğrenme kaynakları. JavaScript bilgisi olan herkes React kodu yazabilir.
- Belirli bileşenleri kolayca oluşturmak için JSX'i kullanır.
- Geliştiricilerin DOM kodunu yazması yerine React, sanal bileşenleri DOM'a dönüştürerek daha hızlı performans sağlar.
Angular'ın Dezavantajları
Angular, bileşenler, bağımlılık enjeksiyonu vb. gibi birçok gelişmiş özellik sunar. Ancak bu, yeni başlayanlar için öğrenmesi o kadar kolay değildir. Bir projedeki kavramları öğrenmek ve uygulamak zaman alır.
React'in Dezavantajları
JSX, geliştiricilerin JS içinde HTML oluşturmasına yardımcı olur. Ancak bileşen, form doğrulama gibi çok büyükse, özellikle yeni başlayanlar için kod karmaşık ve hata ayıklaması zor olabilir. Ayrıca, React yalnızca kullanıcı arayüzünü kapsar ve uçtan uca iş akışı sağlamaz.
Angular'ı mı yoksa React'i mi seçmelisiniz?
Bu soruyu cevaplamadan önce, Angular ve React arasındaki temel farkları özetleyelim:
| Açısal | Tepki |
| Büyük kurumsal, aşamalı ve tek sayfalık uygulamalar tasarlamak için eksiksiz bir çerçeve sunar | Bireysel UI bileşenlerini oluşturmak için bir JavaScript kitaplığı olarak kullanılır |
| Bağımlılık enjeksiyonu, diferansiyel yükleme, tembel yükleme gibi gelişmiş özellikler sağlar | Yalnızca tembel yüklemeyi destekler |
| Angular, TypeScript'e dayanmaktadır | React, JavaScript'e dayanmaktadır |
| MVC mimarisini takip eder | Sanal DOM'a dayalı |
| HTML niteliklerinin bir uzantısı olarak düşünülebilir. | Geliştiriciler, React'in bir bileşen olarak oluşturduğu bir komut dosyasının içine HTML kodu yazabilir |
| Bir araç olarak hata ayıklama ve test etme işlevi sağlar | React herhangi bir yerleşik araç sağlamaz, bu nedenle farklı test türleri için çeşitli araçlar kullanmamız gerekir. |
| Daha büyük öğrenme eğrisi ancak kurulumu nispeten kolay | Ancak daha kolay bir öğrenme eğrisinin kurulması zaman alır |
| Veri değiştikçe model durumunun değiştiği iki yönlü bağlama | UI öğelerinin yalnızca model durumu değiştiğinde değiştirilebildiği tek yönlü veri bağlama |
| Kaynak koduna bir JavaScript kitaplığı ekleyemiyoruz | Kaynak koduna JavaScript kitaplığı eklemeye izin verir |
| Angular CLI, geliştirme ve sorunsuz güncellemeler için bir dizi araç sağlar | React yalnızca kullanıcı arayüzü için olduğundan, bir CLI'si yoktur |
Yukarıdaki farklılıkları göz önünde bulundurarak, hem Angular hem de React'in Tek Sayfa Başvuruları için iyi seçimler olduğu konusunda hemfikiriz. Ancak, uygulamanız büyükse ve çok sayıda doğrulama, yönlendirme ve bağımlılığa ihtiyaç duyuyorsa, kodu kolayca test edebileceğiniz için Angular'ın çalışması iyidir.
Uygulama gereksinimleriniz basitse ve küçük bileşenlere dayanıyorsa, Angular tüm özellikleriyle aşırıya kaçabilir. Ayrıca, React daha kolay bir öğrenme eğrisine sahiptir.
Seçiminizi proje gereksinimlerine, maliyete ve kullanılabilirliğe göre yapın.
Çözüm
Bu makale, Angular ve React'in nasıl çalıştığını karşılaştırmak için küçük kod parçacıkları gösterdi ve ardından ikisi arasındaki büyük farkları anladı.
Angular, geliştirme ve test için tam teşekküllü bir çerçeve olsa da, React yalnızca geliştiricilerin uygulamaları için UI bileşenleri oluşturmasına izin verir. Öte yandan, React hızlı, verimli ve hafif olması ve mobil yerel ve Tek Sayfa Uygulamaları için uygun olması nedeniyle popülaritesi artıyor. Angular halihazırda SPA'lar ve büyük uygulamalar için uygun yerleşik bir çerçevedir.
