React uygulamaları geliştirirken karşılaşılan tekrar eden kurulum süreçleri, proje başlangıcını sıklıkla yavaşlatır. Bu makale, kendi özel React şablonunuzu (template) oluşturmanın neden önemli olduğunu, geliştirme sürecinizi nasıl hızlandıracağını ve modern frontend projelerinde verimlilik arayan herkes için nasıl kapsamlı bir rehber olacağını adım adım anlatmaktadır. Hazırladığınız şablon, sadece zaman kazandırmakla kalmayacak, aynı zamanda projeleriniz arasında tutarlılığı da sağlayacaktır.
Her yeni React projesine sıfırdan başlamak, birçok geliştiricinin karşılaştığı ortak bir sorundur. Paket bağımlılıklarını kurmak, temel dosya yapısını oluşturmak, linter ve formatlayıcıları ayarlamak, routing ve state yönetimi çözümlerini entegre etmek gibi tekrarlayan görevler, değerli geliştirme süresini tüketebilir. Bu durum, özellikle birden fazla proje üzerinde çalışan ekipler veya ajanslar için ciddi bir verimlilik kaybına yol açar. İşte tam da bu noktada, kendi özel React şablonunuzun devreye girmesi kritik bir avantaj sağlar. Bir React şablonu, her yeni projede kullanılabilecek önceden yapılandırılmış bir başlangıç noktasıdır.
Kendi şablonunuzu oluşturmanın en belirgin faydası, şüphesiz zaman tasarrufudur. Temel bir şablonla, projeye başlama süresi saatlerden dakikalara, hatta saniyelere inebilir. Bu, geliştiricilerin hemen işin özüne, yani uygulamanın benzersiz özelliklerini geliştirmeye odaklanmasını sağlar. Ayrıca, bir şablon kullanmak, projeler arasında tutarlılık yaratır. Aynı dosya yapısı, kodlama standartları, bağımlılık versiyonları ve geliştirme yaklaşımları, farklı geliştiricilerin aynı proje üzerinde veya farklı projeler arasında sorunsuz geçiş yapabilmesini kolaylaştırır. Bu tutarlılık, özellikle büyük ekiplerde veya uzun vadeli projelerde bakım maliyetlerini düşürür ve yeni ekip üyelerinin projeye adaptasyonunu hızlandırır.
Vaka analizi olarak, orta ölçekli bir web geliştirme ajansını düşünelim. Bu ajans, her ay ortalama üç yeni müşteri projesi alıyor. Daha önce, her projeye “create-react-app” ile başlıyor, ardından Tailwind CSS, Redux Toolkit, React Router DOM, Jest ve Eslint gibi temel kütüphaneleri manuel olarak kurup yapılandırıyorlardı. Bu süreç, her yeni proje için ortalama 4-6 saatlerini alıyordu. Yıl sonunda, sadece kurulum aşamalarına harcanan zamanın yaklaşık 150-200 saate ulaştığını fark ettiler. Bu, iki hafta veya daha fazla süren bir geliştiricinin tam zamanlı çalışma süresi anlamına geliyordu. Bu durum, geliştiricilerin motivasyonunu düşürüyor ve teslim tarihlerini riske atıyordu. Ajans, bu sorunu çözmek için bir hafta harcayarak kendi React şablonunu oluşturmaya karar verdi. Şablonlarına en sık kullandıkları kütüphaneleri, önceden tanımlanmış bir dosya yapısını, özel Eslint kurallarını ve tema ayarlarını eklediler. Sonuç olarak, yeni bir projeye başlama süresi 15-20 dakikaya düştü. Bu, yılda yüzlerce saatlik bir tasarruf ve geliştiricilerin daha yaratıcı işlere odaklanmasını sağlayan önemli bir gelişmeydi. Kısacası, kendi React şablonunuz, yalnızca bir kolaylık değil, aynı zamanda verimli ve sürdürülebilir yazılım geliştirme pratiğinin temel bir parçasıdır.
Bir React Şablonunda Temel Bileşenler Neler Olmalı?
Etkili bir React şablonu oluştururken, projenizin gelecekteki ihtiyaçlarını ve geliştirme sürecinizi en iyi şekilde destekleyecek temel bileşenleri doğru seçmek hayati önem taşır. Bu bileşenler, yalnızca uygulamanızın çekirdek özelliklerini değil, aynı zamanda kod kalitesini, sürdürülebilirliği ve geliştirici deneyimini de etkiler. İşte bir React şablonunda mutlaka bulunması gereken temel bileşenler ve bu bileşenlerin neden önemli olduğuna dair detaylı bir bakış:
Proje Yapısı ve Modülerlik Nasıl Sağlanır?
Şablonunuzun kalbi, iyi düşünülmüş bir klasör ve dosya yapısıdır. Modülerlik, kodunuzu daha okunabilir, bakımı kolay ve ölçeklenebilir hale getirir. Tipik bir yapı şöyle olabilir:
src/components: Tekrar kullanılabilir UI bileşenleri (Button, Input, Card vb.).src/pages: Uygulamanızın ana görünümleri veya sayfaları (HomePage, AboutPage, DashboardPage).src/assets: Resimler, ikonlar, fontlar gibi statik dosyalar.src/hooks: Özel React hook’ları (useAuth, useDebounce vb.).src/services: API çağrıları veya diğer harici hizmetlerle iletişim kuran modüller.src/utils: Yardımcı fonksiyonlar (formatlama, validasyon vb.).src/styles: Global stiller, tema değişkenleri.src/contextveyasrc/store: State yönetimiyle ilgili dosyalar.
Bu yapı, projenin büyüklüğüne göre genişletilebilir veya daraltılabilir, ancak temel bir başlangıç noktası sunar. Özellikle büyük projelerde, modülerlik sayesinde farklı ekiplerin eş zamanlı çalışması kolaylaşır ve bağımlılık yönetimi basitleşir.
State Yönetimi ve Routing Çözümleri: Hangi Yaklaşımlar En İyisidir?
Uygulamanızın karmaşıklığına bağlı olarak farklı state yönetimi çözümleri tercih edilebilir. Basit projeler için React’ın kendi Context API’si yeterli olabilirken, daha karmaşık ve büyük ölçekli uygulamalar için Redux Toolkit, Zustand, Jotai veya Recoil gibi kütüphaneler daha uygun olabilir. Şablonunuzda, en azından bir basit Context API örneği veya tercih ettiğiniz state yönetim kütüphanesinin temel kurulumu bulunmalıdır. Örneğin, bir kullanıcı kimlik doğrulama durumu için Context API nasıl kullanılacağını gösteren bir yapı.
Routing, modern tek sayfa uygulamalarının (SPA) temelidir. React Router DOM, React ekosisteminde de facto standarttır ve şablonunuzda temel rota tanımlamaları, iç içe rotalar (nested routes) ve parametre yönetimi için bir yapılandırma örneği içermelidir. Bu, uygulamanızın farklı bölümleri arasında sorunsuz gezinmeyi sağlar.
Styling Yaklaşımları: Entegrasyon ve En İyi Uygulamalar
Görsel tutarlılık ve geliştirme hızını artırmak için güçlü bir stil yönetimi çözümü seçmek önemlidir. Popüler seçenekler arasında şunlar bulunur:
- Tailwind CSS: Yardımcı sınıf (utility-first) yaklaşımıyla hızlı UI geliştirme sağlar. Şablonunuzda Tailwind yapılandırma dosyası ve temel kullanım örnekleri bulunabilir.
- Styled Components / Emotion: CSS-in-JS yaklaşımıyla bileşen tabanlı stillendirme sunar. Temalı tasarımlar ve dinamik stiller için idealdir.
- SASS/LESS: Geleneksel CSS ön işlemcileri, daha organize ve yeniden kullanılabilir stiller yazmayı sağlar.
Şablonunuzda tercih ettiğiniz stil yaklaşımının temel kurulumunu ve birkaç örnek bileşeni stillendirme biçimini göstermek faydalı olacaktır. Mobil uyumlu (responsive) tasarım prensiplerini de şablonunuza entegre etmeyi unutmayın.
Kod Kalitesi ve Bakım İçin Linting, Prettier ve Testing
Sürdürülebilir bir şablonun vazgeçilmezleri kod kalitesi araçlarıdır:
- ESLint: Kodunuzu belirli kurallara göre denetler, potansiyel hataları ve stil ihlallerini tespit eder. Şablonunuzda önceden yapılandırılmış bir ESLint kural seti (örneğin, Airbnb veya kendi özel setiniz) bulunmalıdır.
- Prettier: Otomatik kod formatlayıcıdır. ESLint ile birlikte çalışarak kodunuzun her zaman tutarlı bir biçimde kalmasını sağlar, böylece kod incelemelerinde stil tartışmalarını ortadan kaldırır.
- Testing (Jest, React Testing Library): Birim ve entegrasyon testleri, uygulamanızın güvenilirliğini sağlar. Şablonunuz, temel bir test ortamı kurulumu ve birkaç örnek test dosyası içermelidir. Bu, geliştiricileri test yazmaya teşvik eder ve hataların erken aşamada yakalanmasına yardımcı olur.
Bu temel bileşenler, kendi React şablonunuzun temelini oluşturur ve her yeni projenizde size sağlam bir başlangıç noktası sunar. Bir sonraki bölümde, bu bileşenleri adım adım nasıl entegre edeceğinizi ve şablonunuzu nasıl başlatacağınızı inceleyeceğiz.
Adım Adım Kendi React Şablonunuzu Nasıl Başlatırsınız?
Kendi React şablonunuzu oluşturmaya başlamak, ilk başta karmaşık görünebilir, ancak doğru adımları izlediğinizde oldukça basit ve ödüllendirici bir süreçtir. Bu bölümde, şablonunuz için sağlam bir temel oluşturmak amacıyla adım adım bir rehber sunacağız. Modern React geliştirme için create-react-app yerine Vite gibi daha hafif ve hızlı araçları tercih etmek, geliştirme deneyiminizi önemli ölçüde iyileştirebilir.
Başlangıç Noktası: Vite ile Yeni Bir Proje Oluşturma
Vite, çok daha hızlı geliştirme sunucusu ve daha optimize edilmiş üretim derlemeleri sağlayan yeni nesil bir build aracıdır. Başlamak için terminalinizi açın ve aşağıdaki komutu çalıştırın:
npx create-vite@latest my-react-template --template react-ts
Bu komut, my-react-template adında TypeScript destekli bir React projesi oluşturur. TypeScript, büyük ölçekli uygulamalarda tip güvenliği sağlayarak hataları azaltır ve kodun anlaşılırlığını artırır. Projeniz oluştuktan sonra, dizine girin ve bağımlılıkları yükleyin:
cd my-react-template
npm install
Şimdi temel React projeniz hazır. Ancak bu, henüz kişiselleştirilmiş bir şablon değil. Sıradaki adım, gereksiz dosyaları temizlemek ve kendi yapılandırmalarımızı eklemek olacak.
Gereksiz Dosyaları Temizleme ve Temel Klasör Yapısı Oluşturma
Vite'ın veya create-react-app'in oluşturduğu varsayılan projede bazı örnek dosyalar ve logolar bulunur. Şablonunuzu sadeleştirmek ve gelecekteki projeleriniz için temiz bir başlangıç noktası sunmak adına bunları temizlemek iyi bir adımdır. Genellikle aşağıdaki dosyalar silinebilir veya düzenlenebilir:
src/App.css,src/index.css(eğer kendi stil sisteminizi kuracaksanız)src/assets/react.svgsrc/App.tsx(içeriğini boşaltın veya kendi basit bileşeninizi ekleyin)
Temizledikten sonra, daha önce bahsettiğimiz modüler proje yapısını uygulamaya başlayın. src klasörünüzde aşağıdaki dizinleri oluşturun:
src/
├── components/ # Yeniden kullanılabilir UI bileşenleri
├── pages/ # Ana sayfa bileşenleri
├── hooks/ # Özel React hook'ları
├── services/ # API veya diğer servis etkileşimleri
├── utils/ # Yardımcı fonksiyonlar
├── styles/ # Global stiller veya tema dosyaları
├── context/ # Global state için Context API
├── App.tsx # Ana uygulama bileşeni
├── main.tsx # Uygulamanın başlangıç noktası
└── vite-env.d.ts # Vite'a özel TypeScript tip tanımları
Bu yapı, projenizin organizasyonunu ve ölçeklenebilirliğini önemli ölçüde artıracaktır.
TypeScript Entegrasyonu ve Yapılandırması
Yukarıdaki başlangıç komutu zaten TypeScript'i entegre etmişti. Ancak, projenizin büyüklüğüne göre tsconfig.json dosyasında bazı ince ayarlar yapmak isteyebilirsiniz. Örneğin, yol takma adları (path aliases) eklemek, uzun göreceli yolları kısaltarak kodun okunabilirliğini artırır:
// tsconfig.json
{
"compilerOptions": {
"baseUrl": ".",
"paths": {
"@components/*": ["./src/components/*"],
"@pages/*": ["./src/pages/*"],
"@hooks/*": ["./src/hooks/*"],
"@services/*": ["./src/services/*"],
"@utils/*": ["./src/utils/*"],
"@styles/*": ["./src/styles/*"],
"@context/*": ["./src/context/*"]
}
// ... diğer seçenekler
}
}
Bu yapılandırma ile, bir bileşeni içe aktarırken ../../components/Button yerine import Button from '@components/Button'; yazabilirsiniz. Bu, özellikle derin klasör yapısına sahip projelerde geliştirici deneyimini iyileştirir.
Paket Yönetimi ve Temel Bağımlılıklar
Şablonunuzun package.json dosyasında, her yeni projede kullanmayı düşündüğünüz temel bağımlılıkların (örneğin, react-router-dom, axios, seçtiğiniz state yönetim kütüphanesi) listelenmesi gerekir. Bu, yeni bir projeye başladığınızda npm install komutunun tüm gerekli kütüphaneleri otomatik olarak yüklemesini sağlar.
// package.json
{
"name": "my-react-template",
"private": true,
"version": "0.0.0",
"type": "module",
"scripts": {
"dev": "vite",
"build": "tsc && vite build",
"lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0",
"preview": "vite preview"
},
"dependencies": {
"react": "^18.2.0",
"react-dom": "^18.2.0",
"react-router-dom": "^6.x.x", // Örnek olarak ekledik
"axios": "^1.x.x" // Örnek olarak ekledik
},
"devDependencies": {
"@types/react": "^18.2.15",
"@types/react-dom": "^18.2.7",
"@typescript-eslint/eslint-plugin": "^6.0.0",
"@typescript-eslint/parser": "^6.0.0",
"@vitejs/plugin-react-swc": "^3.3.2",
"eslint": "^8.45.0",
"eslint-plugin-react-hooks": "^4.6.0",
"eslint-plugin-react-refresh": "^0.4.3",
"typescript": "^5.0.2",
"vite": "^4.4.5"
}
}
Bu adımları tamamladığınızda, kendi React şablonunuz için sağlam ve kişiselleştirilmiş bir temel atmış olacaksınız. Bir sonraki bölümde, state yönetimi ve routing gibi önemli entegrasyonlara daha yakından bakacağız.
State Yönetimi ve Routing Entegrasyonu Nasıl Yapılır?
Modern React uygulamalarının kalbinde, uygulamanın durumunu (state) etkili bir şekilde yönetme ve kullanıcıların farklı görünümler arasında kolayca gezinmesini sağlama yeteneği yatar. Bu bölümde, kendi React şablonunuzda state yönetimi ve routing'i nasıl entegre edeceğinizi, böylece hem basit hem de karmaşık senaryolar için güçlü bir temel oluşturacağınızı adım adım inceleyeceğiz.
React Context API ile Basit Global State Yönetimi
Daha küçük uygulamalar veya basit global state ihtiyaçları için Redux gibi harici kütüphanelere bağımlı olmak yerine React'ın kendi Context API'sini kullanmak harika bir çözümdür. Context API, prop drilling (prop'ların birçok bileşen katmanından geçirilmesi) sorununu çözerek verileri doğrudan ihtiyacı olan bileşenlere iletmenizi sağlar. Şablonunuzda, bir kimlik doğrulama bağlamı veya tema ayarları gibi global bir durumu yönetmek için bir örnek bulundurabilirsiniz.
Örnek olarak, bir tema bağlamı oluşturalım:
// src/context/ThemeContext.tsx
import React, { createContext, useContext, useState, ReactNode } from 'react';
type Theme = 'light' | 'dark';
interface ThemeContextType {
theme: Theme;
toggleTheme: () => void;
}
const ThemeContext = createContext(undefined);
interface ThemeProviderProps {
children: ReactNode;
}
export const ThemeProvider: React.FC = ({ children }) => {
const [theme, setTheme] = useState('light');
const toggleTheme = () => {
setTheme(prevTheme => (prevTheme === 'light' ? 'dark' : 'light'));
};
return (
{children}
);
};
export const useTheme = () => {
const context = useContext(ThemeContext);
if (!context) {
throw new Error('useTheme must be used within a ThemeProvider');
}
return context;
};
Bu bağlamı uygulamanızın ana bileşenine sararak (genellikle src/main.tsx veya src/App.tsx'te), tüm uygulama genelinde tema durumuna erişebilir ve değiştirebilirsiniz:
// src/main.tsx
import React from 'react';
import ReactDOM from 'react-dom/client';
import App from './App.tsx';
import { ThemeProvider } from '@context/ThemeContext'; // Yol takma adını kullandık
ReactDOM.createRoot(document.getElementById('root')!).render(
,
);
Herhangi bir bileşenden tema durumuna erişmek için useTheme custom hook'unu kullanabilirsiniz:
// src/components/ThemeSwitcher.tsx
import React from 'react';
import { useTheme } from '@context/ThemeContext';
const ThemeSwitcher: React.FC = () => {
const { theme, toggleTheme } = useTheme();
return (
);
};
export default ThemeSwitcher;
Bu, Context API'nin basit ama etkili bir kullanımını gösterir ve şablonunuzda kolayca çoğaltılabilir.
React Router DOM ile Routing Entegrasyonu
React Router DOM, React uygulamalarında gezinmeyi yönetmek için standart bir kütüphanedir. Şablonunuza entegre etmek oldukça basittir.
İlk olarak, React Router DOM'u yükleyin:
npm install react-router-dom
Ardından, uygulamanızın ana giriş noktasında (genellikle src/App.tsx) router'ı yapılandırın. Temel rota tanımlamaları ve nasıl iç içe rotalar oluşturabileceğinizi gösteren bir örnek:
// src/App.tsx
import React from 'react';
import { BrowserRouter as Router, Routes, Route, Link, Outlet } from 'react-router-dom';
import HomePage from '@pages/HomePage';
import AboutPage from '@pages/AboutPage';
import DashboardPage from '@pages/DashboardPage';
import UserProfile from '@components/UserProfile';
import Settings from '@components/Settings';
import ThemeSwitcher from '@components/ThemeSwitcher'; // ThemeSwitcher'ı ekledik
const DashboardLayout: React.FC = () => {
return (
Dashboard Alanı
{/* İç içe rotaların içeriği burada render edilir */}
);
};
const App: React.FC = () => {
return (
/>
/>
>
/> {/* /dashboard için varsayılan alt rota */}
/>
/>
404 Sayfa Bulunamadı />
);
};
export default App;
Bu örnek, temel rota tanımlamalarını, Link bileşeni ile gezinmeyi ve Outlet kullanarak iç içe rotaları nasıl oluşturacağınızı göstermektedir. Ayrıca, * path'i ile bir 404 sayfası tanımlayarak kullanıcıların yanlış URL'lere eriştiğinde bilgilendirilmesini sağlayabilirsiniz. Bu yapılandırmalar, şablonunuzu her yeni projede hızlı bir şekilde kullanıma hazır hale getirecektir.
Stil Yönetimi ve Responsive Tasarım İçin En İyi Uygulamalar Nelerdir?
Bir React uygulamasının görünümü ve hissedilişi, kullanıcı deneyiminin temelini oluşturur. Etkili bir stil yönetimi sistemi ve responsive tasarım prensiplerine uygunluk, uygulamanızın farklı cihazlarda ve ekran boyutlarında kusursuz çalışmasını sağlar. Bu bölümde, şablonunuzda stil yönetimini nasıl entegre edeceğinizi ve mobil uyumluluğu nasıl sağlayacağınızı detaylıca inceleyeceğiz.
Tailwind CSS Kurulumu ve Faydaları
Tailwind CSS, geliştiricilere yardımcı sınıflar (utility classes) aracılığıyla doğrudan HTML işaretlemesinde stil uygulama imkanı sunan bir "utility-first" CSS framework'üdür. Bu yaklaşım, özel CSS yazma ihtiyacını azaltır, geliştirme hızını artırır ve tasarımlar arasında tutarlılığı sağlar. Şablonunuz için harika bir stil seçeneğidir.
Tailwind CSS'i Vite tabanlı React projenize kurmak için şu adımları izleyin:
- Tailwind CSS ve bağımlılıklarını yükleyin:
npm install -D tailwindcss postcss autoprefixer npx tailwindcss init -p
Bu komutlar,tailwind.config.cjsvepostcss.config.cjsdosyalarını oluşturacaktır. tailwind.config.cjsdosyasını yapılandırın: Tailwind'in hangi dosyalarda stil sınıflarını arayacağını belirtin.// tailwind.config.cjs /** @type {import('tailwindcss').Config} */ module.exports = { content: [ "./index.html", "./src/**/*.{js,ts,jsx,tsx}", ], theme: { extend: {}, }, plugins: [], }src/index.css(veya ana CSS dosyanız) içine Tailwind yönergelerini ekleyin:/* src/index.css */ @tailwind base; @tailwind components; @tailwind utilities;- Uygulamanızda kullanmaya başlayın: Artık bileşenlerinizde Tailwind sınıflarını kullanabilirsiniz.
// src/components/Button.tsx import React from 'react'; interface ButtonProps { children: React.ReactNode; onClick: () => void; } const Button: React.FC= ({ children, onClick }) => { return ( ); }; export default Button; Bu yöntem, küçük veya orta ölçekli projelerde hız ve tutarlılık açısından büyük avantajlar sağlar. Karmaşık bileşenlerin stillerini yönetmek için ise
@applydirektifini veya Styled Components gibi farklı bir yaklaşımı düşünebilirsiniz.
Styled Components ile Temalı Yaklaşım
Eğer daha bileşen odaklı ve JavaScript içerisinde stil yazma (CSS-in-JS) yaklaşımını tercih ediyorsanız, Styled Components mükemmel bir seçenektir. Özellikle dinamik stillere veya temalı bir tasarım sistemine ihtiyacınız varsa idealdir.
- Styled Components'ı yükleyin:
npm install styled-components @types/styled-components - Tema sağlayıcı ve global stiller oluşturun:
// src/styles/theme.ts export const lightTheme = { primary: '#007bff', secondary: '#6c757d', background: '#ffffff', text: '#212529', }; export const darkTheme = { primary: '#61dafb', secondary: '#cccccc', background: '#282c34', text: '#ffffff', }; export type Theme = typeof lightTheme; // Tip çıkarımı // src/styles/GlobalStyle.ts import { createGlobalStyle } from 'styled-components'; import { Theme } from './theme'; export const GlobalStyle = createGlobalStyle<{ theme: Theme }>body { background-color: ${({ theme }) => theme.background}; color: ${({ theme }) => theme.text}; font-family: Arial, sans-serif; transition: background-color 0.3s, color 0.3s; }; - Uygulamanızı
ThemeProviderile sarın: Daha önce oluşturduğumuzThemeContextile entegre edilebilir.// src/App.tsx veya src/main.tsx import React from 'react'; import { ThemeProvider as StyledThemeProvider } from 'styled-components'; import { lightTheme, darkTheme } from '@styles/theme'; import { GlobalStyle } from '@styles/GlobalStyle'; import { useTheme } from '@context/ThemeContext'; // Kendi Context API'mızdan theme durumunu alıyoruz // ... App veya main.tsx içeriği const AppWithTheme: React.FC = () => { const { theme: contextTheme } = useTheme(); // Context API'mızdan mevcut temayı al const currentTheme = contextTheme === 'light' ? lightTheme : darkTheme; return ( ); }; export default AppWithTheme;{/* Diğer uygulama bileşenleriniz */}
Medya Sorguları (Media Queries) ile Mobil Uyumlu Tasarım
Responsive tasarım, uygulamanızın farklı ekran boyutlarına dinamik olarak uyum sağlaması anlamına gelir. Bu, özellikle medya sorguları ve esnek birimler (rem, em, yüzdelikler) kullanılarak başarılır. Şablonunuzda, temel bileşenlerinizin responsive davranışını göstermek için örnekler bulundurabilirsiniz.
CSS (Tailwind veya Styled Components içinde):
/* Tailwind CSS örneği - utility sınıflar zaten responsive olarak ayarlanmıştır */
/* Geleneksel CSS veya Styled Components örneği */
@media (max-width: 768px) {
.my-container {
padding: 1rem;
flex-direction: column; /* Dikey sıralama */
}
}
@media (min-width: 769px) and (max-width: 1024px) {
.my-container {
padding: 2rem;
flex-direction: row; /* Yatay sıralama */
}
}
Styled Components'ta ise bu mantığı doğrudan bileşen içinde veya bir "breakpoints" objesi tanımlayarak kullanabilirsiniz:
// src/components/ResponsiveContainer.tsx
import styled from 'styled-components';
const ResponsiveContainer = styled.divpadding: 1rem;
display: flex;
flex-direction: column;
@media (min-width: 768px) {
flex-direction: row;
padding: 2rem;
justify-content: space-between;
}
@media (min-width: 1024px) {
max-width: 1200px;
margin: 0 auto;
};
// Kullanımı:
//
// Responsive İçerik
// Bu içerik, ekran boyutuna göre düzenini değiştirir.
//
Bu yaklaşımlar, şablonunuzun yalnızca güzel görünmesini sağlamakla kalmaz, aynı zamanda farklı kullanıcıların farklı cihazlarda sorunsuz bir deneyim yaşamasını da garanti eder. Stil yönetimi ve responsive tasarımın birleşimi, modern web geliştirmenin temel direklerinden biridir ve şablonunuzda sağlam bir şekilde yer almalıdır.
Gelişmiş React Şablon Özellikleri: Performans ve Bakım İçin İpuçları
Bir React şablonunu oluşturmak sadece temel kütüphaneleri bir araya getirmekle kalmaz, aynı zamanda uygulamanızın gelecekteki performansı, ölçeklenebilirliği ve bakım kolaylığı için stratejik kararlar almayı da gerektirir. Deneyimli geliştiriciler için şablonlarını daha da güçlendirecek ileri düzey özelliklere ve optimizasyon ipuçlarına odaklanacağız.
Code Splitting (Kod Bölme) ve Lazy Loading ile Performans Optimizasyonu
Büyük React uygulamalarında, tüm kodun tek bir JavaScript dosyasında toplanması, başlangıç yükleme sürelerini artırabilir. Code splitting, uygulamanızın kodunu daha küçük parçalara ayırarak yalnızca o an ihtiyaç duyulan kodun yüklenmesini sağlar. React'ın lazy ve Suspense özellikleri bu konuda oldukça etkilidir.
// src/App.tsx veya Router dosyanızda
import React, { lazy, Suspense } from 'react';
import { BrowserRouter as Router, Routes, Route } from 'react-router-dom';
// Sayfaları lazy loading ile yükle
const HomePage = lazy(() => import('@pages/HomePage'));
const AboutPage = lazy(() => import('@pages/AboutPage'));
const DashboardLayout = lazy(() => import('./DashboardLayout')); // Örneğin ayrı bir bileşen
const App: React.FC = () => {
return (
Yükleniyor...