Proje Yapısı
Projen şöyle görünüyor:
my-app/
├── public/
│ └── ronins.svg # Logo (--clean ile silinir)
├── src/
│ ├── app/
│ │ ├── routes/ # Sayfaların
│ │ │ ├── app.tsx # Ana sayfa
│ │ │ └── stack.tsx # Demo sayfası (--clean ile silinir)
│ │ ├── providers.tsx # Uygulama ayarları
│ │ └── router.tsx # Sayfa tanımları
│ ├── components/
│ │ └── ui/ # Arayüz bileşenleri (buton vb.)
│ │ └── button.tsx
│ ├── lib/
│ │ └── utils.ts # Yardımcı fonksiyonlar
│ ├── main.tsx # Giriş noktası
│ └── index.css # Stiller
├── index.html
├── package.json
├── vite.config.ts
└── README.mdÖnemli Klasörler
src/app/routes/
Sayfaların burada. Bir dosya = bir sayfa.
routes/
├── app.tsx → localhost:5173/
├── about.tsx → localhost:5173/about
└── contact.tsx → localhost:5173/contactsrc/components/ui/
shadcn/ui bileşenleri. Yenilerini eklemek için:
bash
npx shadcn add dialog cardbash
bunx shadcn add dialog cardbash
pnpm dlx shadcn add dialog cardbash
yarn dlx shadcn add dialog cardsrc/lib/
Yardımcı fonksiyonlar. cn() fonksiyonu CSS sınıflarını birleştiriyor:
tsx
import { cn } from "@/lib/utils"
// Kullanımı:
<div className={cn("text-red-500", isActive && "font-bold")} />Dosyalar Ne İş Yapıyor
| Dosya | Görevi |
|---|---|
main.tsx | Uygulamayı başlatır |
providers.tsx | TanStack Query gibi servisleri ayarlar |
router.tsx | Sayfa yönlendirmelerini tanımlar |
routes/*.tsx | Sayfa bileşenlerin |