Modern, Kapsamlı ve Üretime Hazır React Başlangıç Şablonu (Boilerplate)
ReactKickstart, modern web uygulamaları geliştirmeye ışık hızında başlamanızı sağlamak için tasarlanmış bir başlangıç kitidir. TypeScript, Redux Toolkit, Styled Components ve React Router gibi endüstri standardı araçlarla önceden yapılandırılmıştır. Amacımız, proje kurulumu ve yapılandırma zahmetinden kurtulmanızı sağlayarak doğrudan harika özellikler oluşturmaya odaklanmanıza olanak tanımaktır.
- ⚡️ Modern Teknoloji Yığını: React 18, TypeScript ve CRA (Create React App) üzerine kurulmuştur.
- 💅 Dinamik Stil Yönetimi:
Styled Components
ile komponent bazlı, izole ve dinamik stilizasyon. Tema desteği mevcuttur. - 📦 Verimli State Yönetimi:
Redux Toolkit
ile öngörülebilir, basit ve güçlü state yönetimi. - 🧭 Akıllı Yönlendirme:
React Router v6
ile modern, dinamik ve iç içe yönlendirme (routing) çözümleri. - ✅ Kod Kalitesi:
ESLint
vePrettier
ile kod standartları ve formatlama otomatik olarak sağlanır. - 📁 Mantıksal Klasör Yapısı: Ölçeklenebilir ve bakımı kolay uygulamalar için tasarlanmış sezgisel bir klasör yapısı.
- 🌐 API İstekleri:
axios
ile API istekleri için hazır yapılandırma.
Projeyi yerel makinenizde çalıştırmak için aşağıdaki adımları izleyin.
Başlamadan önce sisteminizde aşağıdaki araçların kurulu olduğundan emin olun:
-
Projeyi klonlayın:
git clone https://github.com/reactkick/ReactKickstart.git
-
Proje dizinine gidin:
cd ReactKickstart
-
Gerekli paketleri yükleyin:
npm
ile:npm install
veya
yarn
ile:yarn install
-
Geliştirme sunucusunu başlatın:
npm
ile:npm start
veya
yarn
ile:yarn start
Uygulamanız artık tarayıcıda http://localhost:3000
adresinde çalışıyor olmalı!
npm start
: Geliştirme modunda uygulamayı başlatır.npm run build
: Uygulamayı üretim içinbuild
klasörüne paketler.npm test
: Testleri interaktif izleme modunda çalıştırır.npm run lint
: ESLint ile kod dosyalarındaki hataları denetler.npm run format
: Prettier ile tüm kod dosyalarını formatlar.
Proje, ölçeklenebilirliği göz önünde bulundurarak mantıksal bir klasör yapısı kullanır:
src
├── api/ # Axios instance ve API çağrı fonksiyonları
├── assets/ # Resimler, fontlar gibi statik varlıklar
├── components/ # Yeniden kullanılabilir UI komponentleri (Button, Input, vb.)
├── hooks/ # Özel (custom) React hook'ları
├── pages/ # Sayfa seviyesindeki ana komponentler (HomePage, AboutPage, vb.)
├── store/ # Redux Toolkit state yönetimi
│ ├── slices/ # Her bir state dilimi (slice) burada tanımlanır
│ └── store.ts # Redux store'un yapılandırıldığı yer
├── styles/ # Global stiller ve tema dosyaları (theme.ts)
├── types/ # Global TypeScript tipleri ve arayüzleri
├── utils/ # Yardımcı fonksiyonlar
├── App.tsx # Ana uygulama komponenti, yönlendirme mantığını içerir
├── index.tsx # Uygulamanın giriş noktası (DOM render)
└── react-app-env.d.ts
Komponentlerinizi stilize etmek için styled-components
kullanıyoruz. Global tema ayarları src/styles/theme.ts
dosyasında bulunur. Komponentlerinizde bu temayı kolayca kullanabilirsiniz.
Örnek:
import styled from 'styled-components';
const PrimaryButton = styled.button`
background-color: ${props => props.theme.colors.primary};
color: ${props => props.theme.colors.white};
padding: 10px 20px;
border: none;
border-radius: ${props => props.theme.borderRadius};
cursor: pointer;
&:hover {
opacity: 0.9;
}
`;
Uygulama genelindeki state'leri yönetmek için Redux Toolkit'in "slice" modelini kullanıyoruz. Yeni bir state dilimi eklemek için:
src/store/slices/
klasöründemyFeatureSlice.ts
gibi yeni bir dosya oluşturun.createSlice
kullanarak slice'ınızı tanımlayın.- Oluşturduğunuz reducer'ı
src/store/store.ts
dosyasında store'a ekleyin.
Komponentlerinizde state'e erişmek için useSelector
, action'ları tetiklemek için useDispatch
hook'larını kullanın.
Katkılarınız projeyi daha iyi hale getirecektir! Lütfen katkıda bulunmaktan çekinmeyin.
- Projeyi Fork'layın.
- Yeni bir özellik veya hata düzeltmesi için yeni bir Branch oluşturun (
git checkout -b feature/yeni-ozellik
veyagit checkout -b fix/hata-duzeltmesi
). - Değişikliklerinizi yapın ve Commit'leyin.
- Değişikliklerinizi kendi Fork'unuza Push'layın.
- Bir Pull Request açın ve yaptığınız değişiklikleri detaylı bir şekilde açıklayın.
Hata bildirimleri ve özellik talepleri için lütfen GitHub Issues bölümünü kullanın.
Bu proje MIT Lisansı altında lisanslanmıştır. Detaylar için LICENSE dosyasına göz atın.