Site logo
Next mi React mi?,

Next mi React mi?,

Framework ve dil karşılaştırması, yazılım dünyasında hobi olarak yaptığımız, üzerine tartışmalara girdiğimiz önemli bir konu. Kulağa zaman kaybı olarak gelse de, aslında profesyonel hayatımız için oldukça önemli. Zira bu tarz farklılıkları doğru anlamadan, proje için gerekli olan dili ya da frameworku seçmek de imkansız hale gelir. Akıllı bir yazılımcı olarak, öğrendiğimiz tek dile göre proje almaktansa, aldığımız projeye göre bildiğimiz dillerden birini kullanmak mesleki düsturumuz olmalı, değil mi? Tamam nasihatı bir kenara koyup doğrudan konuya giriyorum.

Next.js ve React.js, web uygulamaları oluşturmak için en popüler JavaScript çerçevelerinden ikisidir. Her iki framework de güçlü ve esnektir, ancak bazı temel farklılıkları vardır. Bu farkları kavrayabilmek için bazı terimlere hakim olmamız gerekiyor.

Sözlük

SSR

İngilizcesi Server Side Rendering olan bu terim, istemciden istenen içeriğin, sunucu tarafından oluşturulup gönderildiğini anlatıyor. Yani daha basit bir anlatımla, bir websitesinde http://websitesi.com/blogyazi12 gibi bir adrese girdiğinde, bu blog yazısının bütün görsel içeriği ile birlikte, sunucu tarafından oluşturulduğu, veritabanı işlemlerinin yine sunucuda yapılıp sana doğrudan html olarak son halinin gönderilmesi konseptine SSR diyoruz.

CSR

İngilizce Client Side Rendering den gelen bu terim SSR ‘nin tam tersidir. Sunucudan http://websitesi.com/blogyazi12 içeriğini istediğimizde, sunucu bize o içeriğin nasıl oluşturulacağına dair veriler haricinde hiç bir şey yollamayabilir. E peki ne olacak o halde? O içeriğe nasıl erişeceğiz? Boş sayfaya bakacak halimiz yok? E bu durumda, bütün iş ziyaretçimize yani Client Side ‘a kalıyor. Ziyaretçinin browseri, ilgili blogun verisine kendi erişip, o data ile arayüzü kendi oturtup, bütün interactionları devreye sokup, sonucu yine kendi üzerinde gösteriyor. Oh vallahi, maaşlı eleman gibi çalıştırdık browserı…

SSG & ISR

Static Side Generation & Incremental Static Regeneration terimleri havalı dursalar da, aslında çok basit kullanım alanları vardır. İkisi terim de sitelerin statik olarak yaratıldığını, sonuç olarak bir html çıktısı alınarak, sunucuya bu çıktıların yüklenildiğini kasteder. SSG de siteyi siz tasarlarken, ISR de, belirli koşullar altında, build aşamasında framework kendisi bir html çıktısı oluşturur. Örneklendirmek gerekirse, mesela hiç değişikliğe uğramayan bir iletişim sayfası düşün. Veritabanı yok, değişen veri yok. Bu bölüm SSG olarak sabit hale getirilir, ve html çıktısı yüklenebilir. ISR olarak ise mesela blog yazıları olabilir. Bu yazıları kaç defa değiştiriyoruz allasen…? Bu yüzden frameworkü ayarlayıp, derleme esnasında blog klasörünün içerisine yazı1.html yazı2.html vs vs gibi bir dosya adıyla, veritabanındaki bilgiler okunarak çıktı alınabilir. Bu şekilde, bu blog içeriklerine ulaşmak isteyen ziyaretçi, hiç bir veritabanı işlemi yapmadan, ışık hızında içeriğin html çıktısına ulaşabilir.

Next.js nedir?

Next.js, React üzerine inşa edilmiş bir frameworktür ve sunucu tarafı işleme (SSR), statik site oluşturma (SSG) ve artımlı statik yenileme (ISR) gibi ek özellikler sağlar. SSR, Next.js’nin sayfaları sunucuda işmesine izin verir, bu da performansı ve SEO’yu artırabilir. SSG, Next.js’nin derleme zamanında statik HTML sayfaları oluşturmasına izin verir, bu da performansı ve ölçeklenebilirliği daha da artırabilir. ISR, Next.js’nin sık güncellenen içerik için statik sayfalar oluşturmasına izin verirken, dinamik içerik için yine de SSR’nin avantajlarını sağlar.

React.js nedir?

React.js, kullanıcı arayüzleri oluşturmak için bir JavaScript kütüphanesidir. React, karmaşık Uİ’leri kolayca oluşturmayı sağlayan beyanlı programlama stiliyle bilinir. React ayrıca çok hızlı ve verimlidir, bu da onu yüksek performanslı web uygulamaları oluşturmak için iyi bir seçim yapar.

Next.js ve React.js Arasındaki Temel Farklar

İşte Next.js ve React.js arasındaki temel farklılıklara ilişkin bir tablo:

Hangisini Seçmeli?

Next.js, SSR, SSG veya ISR gerektiren web uygulamaları oluşturmak için iyi bir seçimdir. Next.js, yönlendirme, API çağrıları ve kimlik doğrulama gibi özelliklere sahip karmaşık web uygulamaları oluşturmak için de iyi bir seçimdir.

React.js, SSR, SSG veya ISR’ye ihtiyaç duymayan web uygulamaları oluşturmak için iyi bir seçimdir. React.js, açılış sayfaları veya küçük bloglar gibi basit web uygulamaları oluşturmak için de iyi bir seçimdir.

Hangi frameworkü seçeceğinizden emin değilsen, React.js ile başlamak iyi bir fikirdir. React hakkında iyi bir anlayışa sahip olduktan sonra, Next.js’nin ihtiyaçlarınız için uygun olup olmadığına karar verebilirsiniz.

İşte Next.js kullanılacak bazı örnekler:

  • E-ticaret web siteleri
  • Pazarlama web siteleri
  • Basit açılış sayfaları
  • Bloglar
  • Haber web siteleri
  • Sosyal medya uygulamaları
  • Akış uygulamaları
  • Yönlendirme, API çağrıları ve kimlik doğrulama gibi özelliklere sahip karmaşık web uygulamaları

İşte React.js kullanılacak bazı örnekler:

  • Basit web uygulamaları
  • Statik web siteleri
  • SSR, SSG veya ISR’ye ihtiyaç duymayan web uygulamaları
  • SSR, SSG veya ISR için farklı bir framework kullanan web uygulamaları

Sonuç

Hem Next.js hem de React.js, web uygulamaları oluşturmak için güçlü ve esnek JavaScript frameworklerdir. Senin için en iyisi, spesifik ihtiyaçlarınıza ve gereksinimlerinize bağlı olacaktır. Hangi çerçeveyi seçeceğinizden emin değilseniz, React.js ile başlamak iyi bir fikirdir. React hakkında iyi bir anlayışa sahip olduktan sonra, Next.js’nin ihtiyaçlarınız için uygun olup olmadığına karar verebilirsin.