class ReactJS Rehberi extends Post
@created_at(
"2025-04-22 21:49"
)
**ReactJS Rehberi: Modern Frontend Geliştirme Yol Haritası**
---
# 📚 ReactJS Nedir?
ReactJS, Facebook tarafından geliştirilen ve bakımı yapılan bir **kullanıcı ara yüzü kütüphanesidir**. Özellikle tek sayfa uygulamalar (SPA) oluşturmak için kullanılır. **Bileşen bazlı (component-based)** bir yaklaşımla çalışır ve sanal DOM kullanarak performansı optimize eder.
---
# 📊 React vs Vue.js vs Angular vs Diğerleri
| Özellik | React | Vue.js | Angular | Svelte | Next.js (React tabanlı) |
|-------------------------|------------------|------------------|-------------------|------------------|----------------------------|
| Öğrenme Eğ risi | Orta | Kolay | Zor | Kolay | Orta |
| Yapı | Kütüphane | Framework/Kütüphane | Tam Framework | Compiler Bazlı | Framework |
| Performans | 🌟🌟🌟 | 🌟🌟🌟 | 🌟🌟 | 🌟🌟🌟🌟 | 🌟🌟🌟🌟 |
| Destek ve Topluluk | 👍👍👍 | 👍👍 | 👍👍👍 | 👍👍 | 👍👍👍 |
| Kurumsal Kullanım | Çok Yüksek | Orta | Çok Yüksek | Az | Yüksek |
| Şablon Dili | JSX | HTML Tabanlı | HTML + TypeScript | HTML Benzeri | JSX |
---
# 🛠️ ReactJS Ekosisteminde Temel Araçlar
## 1. **Axios**
- HTTP istekleri yapmak için kullanılan bir üçüncü taraf kütüphanedir.
- Fetch'e alternatif, promise tabanlı.
- Otomatik JSON çevirimi, hata yönetimi kolay.
## 2. **Fetch API**
- Tarayıcının native HTTP istek yapma yöntemidir.
- Axios'a göre daha "ham" kullanılır.
- Basit kullanımlar için yeterli, ama ileri düzey error handling Axios ile daha rahattır.
## 3. **Zustand**
- Çok hafif, basit ama güçlü bir **global state management** çözümü.
- Redux'a alternatif.
- Hooks yapısında kullanılır, boilerplate kodu yok denecek kadar az.
## 4. **TypeScript (TS) ve TSX**
- TypeScript: JavaScript'in **tip güvenliği** sağlayan sürümü.
- `.ts` dosyaları: Sadece TypeScript kodu içerir.
- `.tsx` dosyaları: TypeScript + JSX bileşenlerini içeren dosyalar.
- Daha az hata, daha iyi IDE desteği, daha iyi refactoring.
## 5. **JavaScript (JS)**
- ReactJS, temelde **vanilla JavaScript** + JSX kullanır.
- Ancak projeler büyüdüğünde TypeScript'e geçmek best practice kabul edilir.
---
# 🔄 State vs Global State Nedir?
## ✨ State:
- Bir bileşenin kendi içinde tuttuğu veri.
- Sadece o bileşen etkilenir.
const [count, setCount] = useState(0);
## 📈 Global State:
- Tüm uygulama genelinde erişilebilen veri.
- Birden fazla bileşenin erişmesi gerekiyorsa kullanılır.
- Örnek: Kullanıcı bilgisi, tema ayarı.
Yönetim Araçları: Context API, Redux, Zustand, Recoil.
---
# 🗺️ React Router
- React uygulamaları içinde **sayfalar arası geçiş** sağlar.
- Tek sayfa uygulamada URL değiştirir ama tam sayfa yenilemesi olmaz.
- Nested routes, dynamic routes, protected routes gibi güçlü özellikleri vardır.
import { BrowserRouter, Routes, Route } from 'react-router-dom';
<BrowserRouter>
<Routes>
<Route path="/" element={<Home />} />
<Route path="/about" element={<About />} />
</Routes>
</BrowserRouter>
---
# 📅 Devam Etmek İçin Öneriler
- Component yapısı ve props kavramını çok iyi öğren.
- Hooks (useState, useEffect, useContext) konularını kavra.
- TypeScript ile projeler geliştir.
- Zustand veya Redux gibi global state yönetimlerini incele.
- React Router kullanarak routing mantığını çöz.
- Axios veya Fetch ile API türü HTTP istekleri yapmayı öğren.
- Projelere SSR (Server Side Rendering) için Next.js girişi yapabilirsin.
---
# 🔧 İleri Seviye React Proje Kurulumu ve Yapısı
## 1. Yeni Proje Başlat
npm create vite@latest my-app -- --template react-ts
cd my-app
npm install
npm install axios zustand react-router-dom
## 2. Temiz Klasör Yapısı
src/
├── assets/
├── components/
├── hooks/
├── layouts/
├── pages/
├── routes/
├── services/
├── stores/
├── types/
├── utils/
└── App.tsx
└── main.tsx
## 3. Axios Service Katmanı
import axios from 'axios';
const api = axios.create({
baseURL: 'https://api.example.com',
timeout: 10000,
});
export default api;
## 4. Zustand Global State
import { create } from 'zustand';
interface UserState {
name: string;
setName: (name: string) => void;
}
export const useUserStore = create<UserState>((set) => ({
name: '',
setName: (name) => set({ name }),
}));
## 5. React Router Kullanımı
import { BrowserRouter, Routes, Route } from 'react-router-dom';
<BrowserRouter>
<Routes>
<Route path="/" element={<Home />} />
<Route path="/about" element={<About />} />
</Routes>
</BrowserRouter>
---
# 🌟 Final Tavsiyeler
- TypeScript kullan.
- Axios interceptor ayarla.
- Zustand ile atomic state yönet.
- Lazy loading uygula.
- Hook'lar geliştir.
**Hazır mısın? 🚀 Artık frontend geliştirmede yeni bir seviyeye çıkıyorsun!**