Web Geliştirme Maratonu — React vs Svelte

dilarauluturhan
folksdev

--

Web geliştirme sürekli olarak yenilikçi teknolojilerle her gün şekil değiştiriyor. Bu yenilikçi teknolojilerden React ve Svelte’i öğrenmeye ve yazmaya devam ediyorum. React’in oldukça popüler olması ve geniş bir topluluğa sahip olması Svelte’in ise yenilikçi ve performans odaklı yaklaşımı ikisini de cazip kılıyor. O zaman bu iki dev teknoloji arasındaki karşılaştırmaya dalış yapalım!🫧

Bu yazının konu başlıkları şu şekilde:

  1. React ve Svelte’in Temel Amaçları
  2. React ve Svelte’in Topluluk Desteği
  3. React ve Svelte’in Ortak Yönleri
  4. React ve Svelte’in Farklı Yönleri
  5. React ve Svelte ile Use Case — Sayaç Butonu

React ve Svelte’in Temel Amaçları✨

React, Facebook tarafından geliştirilen ve 2013 yılında ilk kez duyurulan bir JavaScript frameworküdür. Facebook geliştirici ekibi, büyük ölçekli ve karmaşık kullanıcı arayüzlerini daha etkin bir şekilde yönetmek için React’i geliştirmiştir. React component tabanlı bir yapı sunar. Bu sayede kullanıcı arayüzünü yeniden kullanılabilir component’lere ayırarak geliştirmeyi kolaylaştırır. React’in belki de en dikkat çekici özelliği sanal DOM kullanmasıdır. Bu da, React’in gerçek DOM’da yapılan değişiklikleri en aza indirmesini ve performansı arttırmasını sağlar.

Svelte, Rich Harris tarafından geliştirilen ve 2016 yılında ilk kez duyurulan bir JavaScript frameworküdür. Svelte ilk sürümünü 2016'da duyurmasına rağmen büyük çıkışını 2019'da V3'ün duyurulmasıyla yaptı. Svelte 3'ün yayınlanması, geliştiriciler arasında büyük bir ilgi uyandırdı ve kısa sürede web geliştirme alanında popüler hale geldi. Svelte, componentlerin içinde kullanılan değişkenleri otomatik olarak takip eden ve değişkenlerin değeri değiştiğinde component’in yeniden render edilmesini tetikleyen bir özellik sunar. Aynı zamanda kodu derleme zamanında compile eder. Bu sayede oluşturulan uygulamalar daha hızlıdır.

React ve Svelte’in Topluluk Desteği✨

React son derece büyük ve aktif bir topluluğa sahiptir. Facebook tarafından duyurulan bu açık kaynaklı proje bir çok geliştirici tarafından desteklenmektedir. Topluluk desteğinin yanında dokümantasyon ve öğrenme kaynakları açısından da zengindir. React’in resmi web sayfasındaki kaynak ve örnek uygulamaları öğrenmeye yeni başlayan birisi için oldukça eğitici bir kaynaktır.

React npm weekly downloads
React GitHub stars

Svelte, daha yeni bir teknoloji olmasına rağmen hızla büyüyen bir topluluğa sahiptir. Topluluk, Reddit ve Discord gibi platformlarda da aktiftir ve Svelte ile ilgili soruları yanıtlamak, projeleri paylaşmak ve deneyimleri paylaşmak için geliştiricilerle iletişim halindedir. Svelte’in resmi web sayfasındaki kaynak ve örnek uygulamaları oldukça öğretici ve öğrenmeye yeni başlayan birisi için yol gösterici kaynaktır.

Svelte npm weekly downloads
Svelte GitHub stars

React ve Svelte’in topluluk desteği arasında bazı farklar vardır. Elbette React uzun bir geçmişe ve büyük bir kullanıcı tabanına sahiptir. Bu da geniş bir kaynak havuzu ve kapsamlı bir ekosistemle sonuçlanır ancak Svelte’in hızla büyüyen bir topluluğa sahip olması ve yenilikçi yaklaşımı gelecekte daha da popüler hale gelmesini sağlayabilir.

Proje seçiminde topluluk desteği geliştirme sürecinizin verimliliği ve sorunları çözme hızı açısından önemlidir. Hem React hem de Svelte güçlü topluluklara sahip olsa da projenizin ihtiyaçlarına en uygun olanı seçmek için bu faktörleri göz önünde bulundurmanız önemlidir.

React ve Svelte’in Ortak Yönleri✨

React ve Svelte farklı özelliklere sahip olsa da bazı ortak yönleri de mevcuttur. İkisi de component tabanlı bir yaklaşım benimser. Component tabanlı yaklaşım kodun daha modüler ve yönetilebilir olmasını sağlar.

Hem React hem de Svelte zengin bir ekosisteme sahiptir. Her iki teknoloji de çeşitli yardımcı kütüphanelerle ve eklentilerle desteklenmektedir. Bu ekosistem, biz geliştiricilere uygulamayı daha hızlı ve verimli bir şekilde oluşturma ve genişletme imkanı sunar.

Her iki teknoloji de performansı ön planda tutar. React’in sanal DOM’unun güncelleme stratejisi ve Svelte’in derleme zamanı optimizasyonu uygulamaların hızlı ve verimli olmasını sağlar. Bu da, kullanıcıların daha iyi bir deneyim yaşamasına ve geliştiricilerin uygulamaları daha az kaynak kullanarak daha hızlı geliştirmesine olanak tanır.

React ve Svelte’in bu ortak yönleri her iki teknolojinin de web geliştirme alanında güçlü birer oyuncu olduğunu gösterir.

https://pagepro.co/blog/react-vs-svelte/

React ve Svelte’in Farklı Yönleri✨

React ve Svelte farklı yaklaşımları olan iki önemli teknojidir. Her ikisi de modern web uygulamaları oluşturmak için güçlü araçlar sunar ancak farklı özelliklere ve yaklaşımlara sahiptirler.

React, JSX (JavaScript XML) kullanarak component oluşturur ve bu component aracılığıyla kullanıcı arayüzlerini oluşturur. Aşağıdaki component örneğinde Profile() adındaki component Gallery() componentinde çağırılmıştır.

https://react.dev/learn/describing-the-ui#your-first-component

Svelte, HTML benzeri bir syntax kullanarak component oluşturur. Kodun çalışma zamanında değil derleme zamanında çalışmasını sağlayarak componenti optimize edilmiş JavaScript koduna dönüştürür ve performansı arttırır. Aşağıda da gördüğünüz gibi Svelte componenti oluşturmak tıpkı HTML yazmaya benzemektedir.

https://learn.svelte.dev/tutorial/your-first-component

React, sanal DOM kullanarak componentler arasındaki değişiklikleri algılar ve sadece gerektiğinde DOM’u günceller. Svelte, derleme zamanında componentleri optimize edilmiş JavaScript koduna dönüştürerek performansı arttırır. Bu da, uygulamanın çalışma zamanında daha az işlem yapılmasını ve daha hızlı yüklenmesini sağlar.

React, karmaşık state management senaryoları için Redux gibi kütüphaneleri kullanır. Diğer yandan Svelte ise state management senaryolarında reactivity işlevler sunarak ek kütüphanelere olan bağımlılığı potansiyel olarak azaltır.

Reactivity nedir?

Svelte, reactivity konseptini diğer framework’lerden daha basit bir şekilde sunar. Değişkenlerin durumu değiştiğinde otomatik olarak componentin yeniden render edilmesini sağlar.

Reactivity hakkında daha fazla bilgi için aşağıda linkini bıraktığım Medium yazımdan bilgi alabilirsiniz👇

React, geniş kapsamlı uygulamalar için uygun olan büyük bir ekosisteme sahiptir ancak React projeleri genellikle daha büyük boyutlarda olabilir ve başlangıçta daha fazla kurulum gerektirebilir. Svelte daha küçük boyutludur ve daha az öğrenme eğrisine sahiptir. Svelte projeleri genellikle daha küçük boyutlarda olabilir ve daha az bağımlılık içerir.

React ve Svelte’in farklı yönleri her iki teknolojinin de farklı kullanım senaryolarına ve tercihlere sahip geliştiricilere hitap ettiğini gösterir. Biz geliştiriciler, ihtiyacımıza en uygun olan teknolojiyi seçerken bu farklılıkları dikkate almalıyız.

React ve Svelte ile Use Case —Sayaç Butonu✨

Çok fazla teorik konular konuştuk hadi biraz kod bloklarına bakalım. React ve Svelte’i karşılaştırmak için sayaç butonu kodları hazırladım. Hadi şimdi bunları inceleyelim:

Önce React ile başlayalım. Aşağıdaki kodlara bakacak olursak,

useState hook'u, React'te component’lerin state’ini yönetmek için kullandık. Bu örnekte count adında bir state oluşturdum ve başlangıç değeri olarak 0 atadım. setCount fonksiyonunu bu state’i güncellemek için kullanıyoruz.

increment ve decrement fonksiyonlarını sayaç değerini arttırmak ve azaltmak için kullanıyoruz. Her iki fonksiyon da setCount fonksiyonunu çağırarak count state’ini günceller.

import React, { useState } from "react";

function Counter() {
const [count, setCount] = useState(0);

const increment = () => setCount(count + 1);
const decrement = () => setCount(count - 1);

return (
<div>
<button onClick={increment}>+</button>
<span>{count}</span>
<button onClick={decrement}>-</button>
</div>
);
}
export default Counter;

Bu şekilde Counter component’i bize bir sayaç gösterir ve arttırma/azaltma butonları ile sayaç değerini günceller. Bu basit örnekte, useState hook'u ile state yönetimi sağlanırken increment ve decrement fonksiyonları ile sayaç değeri güncellenir. Bu sayede component kullanıcı etkileşimine dinamik bir şekilde yanıt verir. Kod çıktısına bakalım:

React Sayaç Butonu

Şimdi de aynı componenti Svelte ile oluşturalım. Bu kodlarda Svelte daha kolay bir yaklaşım benimsiyor. Svelte’te değişken oluşturmak (let count = 0) React’te state oluşturmaya karşılık geliyor. Svelte ile oluşturduğumuz sayaç butonu kodlarını inceleyelim:

count sayaç değerini tutan bir değişkendir. Başlangıç değeri olarak 0 atadım ve sayaç değeri bu değişken üzerinden güncellenecek. increment ve decrement fonksiyonları sayaç değerini arttırmak ve azaltmak için kullanıyoruz. Her iki fonksiyon da count değişkenini arttırır veya azaltır.

<script>
let count = 0;

function increment() {
count++;
}

function decrement() {
count--;
}
</script>

<button on:click={increment}>+</button>
<span>{count}</span>
<button on:click={decrement}>-</button>

Svelte ile sayaç oluşturmak işte bu kadar kolay. Bu şekilde JavaScript kullanarak basit bir sayaç oluşturup HTML ile kullanıcı arayüzü oluşturabiliriz. Kod çıktısına da bakalım:

Svelte Sayaç Butonu

Sonuç olarak bu yazıda React ve Svelte’in hem benzer hem de farklı yönlerini inceledik. Case üzerinden nasıl çalıştığını inceledik. Her iki teknolojinin de kendine özgü avantajları ve dezavantajları bulunmaktadır. React, geniş bir topluluğa ve gelişmiş ekosisteme sahip olmasıyla popülerdir. Buna karşılık Svelte, derleme zamanında optimizasyon ve basit bir syntax ile performans ve hız odaklıdır. Hangi teknolojinin tercih edileceği projenin gereksinimlerine, ekibin deneyimine ve kişisel tercihlere bağlıdır. Her iki teknoloji de modern web geliştirme alanında güçlü birer oyuncu olup geliştiricilere esneklik ve seçenekler sunmaktadır. React ve Svelte’in her ikisi de farklı kullanım senaryolarına uygun olarak avantajlar sunar ve web geliştirme projelerinde değerlendirilmeye değerdir.

Sorularınız, yorumlarınız veya konu önerileriniz varsa lütfen bana bildirin. Sizlerin geri bildirimleri blog serimi daha da iyileştirmeme yardımcı olur. Bir sonraki yazıda görüşmek üzere!

Bana ulaşmak isterseniz tıklayınız👩🏻‍💻

Yazılarıma kahve ısmarlayarak destek olabilirsiniz☕️

--

--