SolidJS 2.0 Rehberi: React Alternatifi ile Yüksek Performanslı UI (2026)

17.03.2026 20:28 Haber

SolidJS 2.0 beta aşamasında! React'e güçlü bir alternatif olan SolidJS, fine-grained reaktivite, sıfır sanal DOM ve async-first mimarisiyle 2026'nın en hızlı JavaScript UI kütüphanesi olmaya devam ediyor. Bu rehberde sıfırdan başlayarak öğrenin.

SolidJS Nedir?

SolidJS, Ryan Carniato tarafından geliştirilen, sanal DOM kullanmayan, fine-grained reaktivite modeline dayanan bir JavaScript UI kütüphanesidir. React'in JSX sözdizimini kullanır, ancak çalışma prensibi tamamen farklıdır.

Özellik Değer
Sanal DOM❌ Yok (doğrudan DOM güncellemesi)
Bundle boyutu~7KB (React ~45KB)
JSX desteği✅ (derleme zamanında dönüştürülür)
TypeScript✅ Tam destek
Full-stack frameworkSolidStart (Next.js alternatifi)

SolidJS vs React: Temel Farklar

Görünüşte benzer ama çok farklı çalışırlar:

React — useState ile Counter

import { useState } from 'react';

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

  // Her state değişiminde TÜM component yeniden render edilir
  console.log('Render!');

  return (
    <button onClick={() => setCount(count + 1)}>
      Sayı: {count}
    </button>
  );
}

SolidJS — createSignal ile Counter

import { createSignal } from 'solid-js';

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

  // Component SADECE BİR KEZ çalışır!
  // Sadece {count()} kısmı DOM'da güncellenir
  console.log('Sadece bir kez!');

  return (
    <button onClick={() => setCount(count() + 1)}>
      Sayı: {count()}
    </button>
  );
}
✅ Önemli fark: SolidJS'te component fonksiyonu sadece bir kez çalışır. React'te her state değişiminde yeniden çalışır. SolidJS sadece değişen DOM düğümlerini günceller.

SolidJS 2.0 Yenilikleri (Beta)

SolidJS 2.0 beta, async-first yaklaşımıyla büyük bir mimari değişiklik sunuyor:

  • Async computations: Sinyaller artık Promise döndürebilir
  • <Loading> componenti: UI render edilirken fallback gösterir, tearing olmadan
  • isPending(): Yenileme durumunda UI'ı yıkmadan loading state yönetimi
  • createAsync: Async fonksiyonları sinyale dönüştürür, Suspense ile otomatik entegrasyon
  • cache(): Veri önbelleği için yeni primitive
  • action(): Form mutasyonları için yeni primitive

SolidJS Kurulumu

Yeni Proje Oluşturma

# create-solid ile scaffolding
npx create-solid my-app

# Sorular:
# ? Is this a SolidStart project? → No (sadece SolidJS)
# ? TypeScript? → Yes
# ? Template? → bare

cd my-app
npm install
npm run dev

Mevcut Projeye SolidJS Ekleme

# Vite ile
npm install solid-js
npm install -D vite-plugin-solid

# vite.config.ts
import { defineConfig } from 'vite';
import solid from 'vite-plugin-solid';

export default defineConfig({
  plugins: [solid()]
});
✅ Proje yapısı hazır! localhost:3000 adresinde SolidJS uygulamanız çalışır.

Fine-Grained Reaktivite: createSignal, createMemo, createEffect

Reaktivite Primitifleri

import { createSignal, createMemo, createEffect } from 'solid-js';

function App() {
  // createSignal — reaktif değer
  const [isim, setIsim] = createSignal('Ahmet');
  const [yas, setYas] = createSignal(25);

  // createMemo — türetilmiş reaktif değer (React useMemo gibi ama otomatik)
  const bilgi = createMemo(() => `${isim()}, ${yas()} yaşında`);

  // createEffect — yan etkiler (React useEffect gibi ama dep array YOK)
  createEffect(() => {
    console.log('İsim değişti:', isim()); // isim() okunduğunda otomatik takip
  });

  return (
    <div>
      <p>{bilgi()}</p>
      <input
        value={isim()}
        onInput={(e) => setIsim(e.target.value)}
      />
    </div>
  );
}
ℹ️ Dependency Array Yok! SolidJS'te createEffect içinde hangi sinyaller okunursa otomatik olarak onları takip eder. React'teki useEffect'in dependency array'ini manuel girme hatası burada yoktur.

SolidJS 2.0 Async Primitifleri

createAsync ile Veri Çekme

import { createAsync, cache } from '@solidjs/router';
import { Suspense } from 'solid-js';

// Önbelleklenmiş veri fetcher
const kullaniciGetir = cache(async (id: number) => {
  const res = await fetch(`/api/users/${id}`);
  return res.json();
}, 'kullanici');

function KullaniciProfili(props: { id: number }) {
  // createAsync: async fonksiyonu sinyale dönüştürür
  const kullanici = createAsync(() => kullaniciGetir(props.id));

  return (
    <Suspense fallback={<p>Yükleniyor...</p>}>
      <div>
        <h2>{kullanici()?.name}</h2>
        <p>{kullanici()?.email}</p>
      </div>
    </Suspense>
  );
}

SolidStart: Full-Stack Framework

SolidStart, SolidJS'in Next.js/Nuxt karşılığıdır. Server-side rendering, file-based routing ve server functions içerir.

SolidStart Projesi Kurulumu

npx create-solid my-app
# ? Is this a SolidStart project? → YES

npm install
npm run dev

Server Function (API Route olmadan)

import { action, redirect } from '@solidjs/router';

// Sunucuda çalışan fonksiyon
const kullaniciEkle = action(async (form: FormData) => {
  'use server'; // Bu satır: sunucuda çalış
  const isim = form.get('isim');
  await db.insert({ isim });
  return redirect('/kullanicilar');
});

function KullaniciFormu() {
  return (
    <form action={kullaniciEkle} method="post">
      <input name="isim" placeholder="Ad" />
      <button type="submit">Ekle</button>
    </form>
  );
}

✅ SolidJS Performans ve Sonuç

JS Framework Benchmark'larına göre SolidJS, vanilla JavaScript'e yakın performans sunar:

Framework Performans Skoru
Vanilla JS1.00 (baz)
SolidJS 2.01.04
Svelte 51.12
Vue 3 Vapor1.21
React 191.58

SolidJS 2.0'ı seçin eğer:

  • ✅ Maksimum performans istiyorsanız
  • ✅ Fine-grained reaktivite modelini benimsemek istiyorsanız
  • ✅ Küçük bundle boyutu kritikse
  • ✅ SPA veya SSR full-stack app geliştiriyorsanız

Faydalı Linkler:

© 2026 AlestaWeb - Tüm hakları saklıdır.

WM Tools
💫

WebMaster Tools

15 Profesyonel Araç
Alesta AI
Alesta AI
Online