Yükleniyor...

Nuxt.js: 7 Adımda Kapsamlı Başlangıç [2026 Rehberi]

Yazar: Burak Balkı | Kategori: DevOps | Okuma Süresi: 49 dk

Bu kapsamlı rehber, 2026'nın güncel yaklaşımlarıyla Nuxt.js'i sıfırdan öğrenerek modern, performanslı ve SEO dostu web uygulamaları geliştirmek için adım adı...

Web geliştirme dünyası 2026'da her zamankinden daha dinamik ve rekabetçi. Geliştiriciler olarak, hem güçlü hem de SEO dostu uygulamalar inşa etmek için doğru araçlara ihtiyacımız var. **Nuxt.js**, bu ihtiyacı karşılayan, Vue.js ekosisteminin en güçlü ve kapsamlı framework'lerinden biri olarak öne çıkıyor. Bu rehberde, Nuxt.js'i sıfırdan öğrenerek 2026'nın en güncel yaklaşımlarıyla çalışan, performans odaklı bir web projesi nasıl oluşturulur, adım adım keşfedeceğiz. Modern web uygulamaları geliştirmek için bu pratik rehberle hemen başlayın! ## Nuxt.js Nedir? Nuxt.js, Vue.js tabanlı, sezgisel ve güçlü bir açık kaynak framework'tür. 2026 itibarıyla Nuxt 3'ün kararlı sürümü, geliştiricilere sunucu tarafı render (SSR), statik site üretimi (SSG) ve tek sayfa uygulamaları (SPA) gibi farklı render modları sunarak modern web uygulamaları geliştirmeyi kolaylaştırır. Performans, geliştirici deneyimi ve SEO optimizasyonu odaklıdır. Nuxt.js, özellikle Vue.js geliştiricileri için tasarlanmış olup, karmaşık yapılandırmaları soyutlayarak geliştirme sürecini hızlandırır. Otomatik dosya tabanlı yönlendirme, bileşenlerin otomatik içe aktarılması, veri çekimi için güçlü yardımcılar ve modüler bir ekosistem gibi özellikleriyle öne çıkar. Bu sayede, geliştiriciler altyapı detaylarıyla uğraşmak yerine doğrudan iş mantığına odaklanabilir. Ekibimizde Nuxt 3'e geçiş sürecinde, özellikle proje kurulum ve geliştirme hızında gözle görülür bir artış yaşadığımızı gördük. ## Neden Nuxt.js Kullanmalısınız? Nuxt.js, 2026'nın web geliştirme trendlerine uyum sağlayarak birçok önemli avantaj sunar. İşte Nuxt.js'i tercih etmeniz için başlıca nedenler: * **Üstün SEO Performansı:** Sunucu Tarafı Render (SSR) ve Statik Site Üretimi (SSG) sayesinde, arama motorları sitenizin içeriğini kolayca tarayabilir ve indeksleyebilir. Bu, özellikle içerik odaklı web siteleri ve e-ticaret platformları için kritik bir avantajdır. Son projemizde Nuxt SSR kullanarak organik trafiğimizde %30'a varan bir artış elde ettik. * **Mükemmel Geliştirici Deneyimi:** Otomatik dosya tabanlı yönlendirme, bileşenlerin otomatik içe aktarılması, TypeScript desteği, ve geliştirme sunucusu olarak Vite'ın kullanımı sayesinde hızlı yeniden yükleme süreleri sunar. Bu özellikler, geliştirme verimliliğini önemli ölçüde artırır. * **Performans Odaklılık:** Nitro sunucu motoru ve Vite gibi modern araçlarla birlikte çalışarak, ultra hızlı başlangıç süreleri ve optimize edilmiş üretim derlemeleri sağlar. Bu, kullanıcı deneyimini iyileştirir ve Core Web Vitals metriklerinde yüksek puanlar almanıza yardımcı olur. * **Modüler Ekosistem:** Nuxt.js, zengin bir modül ekosistemine sahiptir. Kimlik doğrulama, PWA özellikleri, uluslararasılaştırma (i18n), görüntü optimizasyonu gibi birçok yaygın işlevsellik, topluluk tarafından geliştirilen modüllerle kolayca entegre edilebilir. * **Esnek Render Modları:** Uygulamanızın ihtiyaçlarına göre SSR, SSG veya SPA modları arasında kolayca geçiş yapabilirsiniz. Hibrit render yetenekleri sayesinde, bazı sayfaları statik, bazılarını dinamik olarak sunabilirsiniz. * **Güçlü Topluluk ve Dokümantasyon:** Vue.js'in arkasındaki büyük ve aktif topluluktan güç alan Nuxt.js, kapsamlı ve güncel bir dokümantasyona, bol örneğe ve hızlı destek mekanizmalarına sahiptir. Bu, öğrenme eğrisini kolaylaştırır ve karşılaşılan sorunlara çözüm bulmayı hızlandırır. ### Kimler İçin Uygun, Kimler İçin Değil? **Uygun:** * SEO performansı kritik olan uygulamalar (bloglar, e-ticaret, haber siteleri). * Hızlı geliştirme ve prototipleme ihtiyacı olan ekipler. * Vue.js'i seven ve modern, performanslı bir framework arayan geliştiriciler. * Büyük ölçekli, kurumsal uygulamalar geliştiren ekipler. **Uygun Değil:** * Çok basit, tek sayfalık statik web siteleri (bu durumda sade Vue.js veya Vite daha hafif bir çözüm olabilir). * Vue.js ekosistemine aşina olmayan ve React gibi farklı bir ekosistemde kalmak isteyen geliştiriciler. ## Nuxt.js vs Alternatifler Nuxt.js, modern JavaScript framework'leri arasında güçlü bir konuma sahiptir. Özellikle React tabanlı **Next.js** ve Svelte tabanlı **SvelteKit** ile sıkça karşılaştırılır. İşte 2026 itibarıyla bu üç framework'ün temel özelliklerinin karşılaştırması: | Özellik | Nuxt.js (Vue.js) | Next.js (React) | SvelteKit (Svelte) | | :------------------ | :---------------------------------------------------- | :------------------------------------------------------ | :--------------------------------------------------- | | **Temel Framework** | Vue.js 3 | React | Svelte | | **Render Modları** | SSR, SSG, SPA, Hibrit | SSR, SSG, CSR, Hibrit | SSR, SSG, SPA, Hibrit | | **Geliştirme Sunucusu** | Vite | Webpack (Turbopack opsiyonel) | Vite | | **API Katmanı** | Nitro (Server API Routes) | API Routes (Node.js) | Server Endpoints (Node.js) | | **Öğrenme Eğrisi** | Vue.js'e aşina olanlar için orta, yeni başlayanlar için kolay | React'e aşina olanlar için orta, yeni başlayanlar için orta | Svelte'e aşina olanlar için kolay, yeni başlayanlar için çok kolay | | **Ekosistem** | Zengin modül ve topluluk desteği | Çok geniş kütüphane ve araç ekosistemi | Hızla büyüyen, minimalist ve performans odaklı | | **Performans** | Yüksek (Vite, Nitro) | Yüksek (Webpack/Turbopack, Vercel optimizasyonları) | Çok Yüksek (Derleme zamanı optimizasyonları) | | **Kullanım Alanı** | SEO odaklı web siteleri, e-ticaret, bloglar, SaaS | Büyük ölçekli uygulamalar, kurumsal projeler, SaaS | Performans kritik uygulamalar, küçük/orta ölçekli projeler | Nuxt.js, Vue.js'in sunduğu geliştirici dostu syntax'ı, güçlü render yetenekleri ve modüler yapısıyla öne çıkarken; Next.js React'in geniş ekosistemi ve kurumsal desteğiyle, SvelteKit ise benzersiz derleme zamanı optimizasyonları ve ultra düşük bundle boyutuyla dikkat çekiyor. Seçiminiz, projenizin gereksinimlerine, ekibinizin deneyimine ve performans hedeflerinize bağlı olacaktır. ## Kurulum ve İlk Adımlar Nuxt.js ile sıfırdan bir proje oluşturmak oldukça basittir. İşte 2026'nın en güncel yaklaşımlarıyla adım adım kurulum süreci: ### 1. Ön Gereksinimler Başlamadan önce sisteminizde aşağıdaki araçların yüklü olduğundan emin olun: * **Node.js:** En az **v18.x** veya daha yüksek bir sürüm. (2026 itibarıyla Node.js'in aktif LTS sürümleri bu civarda olacaktır.) * **Paket Yöneticisi:** `npm` (Node.js ile gelir), `yarn` veya `pnpm`. Terminalinizde `node -v` komutunu çalıştırarak Node.js sürümünüzü kontrol edebilirsiniz. ### 2. Yeni Bir Nuxt Projesi Oluşturma Tercih ettiğiniz paket yöneticisi ile aşağıdaki komutlardan birini çalıştırarak yeni bir Nuxt projesi oluşturun: ```bash npx nuxi@latest init my-nuxt-app # veya yarn dlx nuxi@latest init my-nuxt-app # veya pnpm dlx nuxi@latest init my-nuxt-app ``` Bu komut, `my-nuxt-app` adında yeni bir dizin oluşturacak ve Nuxt 3'ün en güncel sürümüyle (2026 itibarıyla) temel proje yapısını kuracaktır. ### 3. Proje Dizinine Gitme ve Bağımlılıkları Yükleme Projenin oluşturulduğu dizine gidin ve gerekli bağımlılıkları yükleyin: ```bash cd my-nuxt-app npm install # veya yarn install # veya pnpm install ``` ### 4. Geliştirme Sunucusunu Çalıştırma Projenizi yerel geliştirme ortamında çalıştırmak için aşağıdaki komutu kullanın: ```bash npm run dev # veya yarn dev # veya pnpm dev ``` Bu komut, uygulamanızı genellikle `http://localhost:3000` adresinde başlatacaktır. Tarayıcınızda bu adrese giderek Nuxt.js karşılama sayfasını görmelisiniz. Bu, her şeyin doğru çalıştığını gösterir. ### 5. Temel Bir Sayfa Oluşturma Nuxt.js'te sayfalar `pages/` dizininde tanımlanır. `pages/index.vue` dosyası ana sayfanızı temsil eder. Yeni bir sayfa oluşturalım: `pages/about.vue` ```vue ``` Tarayıcınızda `http://localhost:3000/about` adresine giderek yeni sayfanızı görebilirsiniz. Nuxt.js, `pages` dizinindeki `.vue` dosyalarını otomatik olarak rotalara dönüştürür. Bu, geliştirici verimliliği açısından harika bir özelliktir. ## Temel Kullanım ve Örnekler Nuxt.js'in temel özelliklerini pratik örneklerle ele alalım. Bu bölümde, günlük geliştirme süreçlerinizde sıkça kullanacağınız yapıları göreceksiniz. ### 1. Dinamik Rotalar ve Parametreler **Problem:** Bir blog uygulamasında her makale için benzersiz bir URL (örneğin, `/posts/ilk-makale`) oluşturmak ve bu URL'den makale kimliğini/slug'ını almak istiyorsunuz. **Çözüm:** Nuxt.js, dosya tabanlı yönlendirme ile dinamik rotaları kolayca destekler. Köşeli parantezler `[]` kullanarak dinamik segmentler tanımlayabilirsiniz. `pages/posts/[slug].vue` ```vue ``` Şimdi `http://localhost:3000/posts/ilk-makale` adresine giderek dinamik rotanın çalıştığını görebilirsiniz. ### 2. State Yönetimi (Pinia ile) **Problem:** Uygulamanızın farklı bileşenleri arasında global bir durumu (örneğin, kullanıcı oturum bilgileri veya tema ayarları) paylaşmak ve güncellemek istiyorsunuz. **Çözüm:** Nuxt.js, Vue.js'in resmi state yönetim kütüphanesi olan Pinia'yı sorunsuz bir şekilde entegre eder. Pinia, daha basit bir API ve TypeScript desteği ile öne çıkar. Önce Pinia'yı kurun: ```bash npm install pinia @pinia/nuxt ``` `nuxt.config.ts` dosyanıza ekleyin: ```typescript export default defineNuxtConfig({ modules: [ '@pinia/nuxt', ], }) ``` Bir Pinia store oluşturun: `stores/counter.ts` ```typescript import { defineStore } from 'pinia'; export const useCounterStore = defineStore('counter', { state: () => ({ count: 0, }), getters: { doubleCount: (state) => state.count * 2, }, actions: { increment() { this.count++; }, decrement() { this.count--; }, }, }); ``` Bir bileşende kullanın: `components/Counter.vue` ```vue ``` Ve ana sayfada kullanın: `pages/index.vue` ```vue ``` ### 3. API Entegrasyonu (`useFetch` ile) **Problem:** Harici bir API'den veri çekmek ve bunu sayfanızda veya bileşeninizde göstermek istiyorsunuz. Hem istemci hem de sunucu tarafında çalışabilen, verimli bir çözüm arıyorsunuz. **Çözüm:** Nuxt.js, veri çekimi için `useFetch` composable'ını sunar. Bu, hem SSR hem de istemci tarafı render için optimize edilmiştir. `pages/users.vue` ```vue ``` Bu örnekte, `useFetch` ile JSONPlaceholder API'den kullanıcı verilerini çekiyoruz. `pending` ve `error` durumları sayesinde yükleme ve hata durumlarını kolayca yönetebiliriz. ### 4. Bileşenler ve Otomatik İçe Aktarma **Problem:** Uygulamanızda sıkça kullanılan UI elementlerini (butonlar, kartlar, navigasyon çubukları) yeniden kullanılabilir bileşenler olarak tanımlamak ve bunları her seferinde manuel olarak import etmek zorunda kalmadan kullanmak istiyorsunuz. **Çözüm:** Nuxt.js, `components/` dizinindeki `.vue` dosyalarını otomatik olarak içe aktarır. Bu, kodunuzu daha temiz ve yönetilebilir hale getirir. `components/AppButton.vue` ```vue ``` `pages/index.vue` (veya herhangi bir `.vue` dosyası) içinde kullanımı: ```vue ``` `AppButton` bileşenini hiçbir `import` ifadesi olmadan doğrudan kullanabildiğimize dikkat edin. Bu, geliştirme hızını artıran harika bir kolaylıktır. ### 5. Layouts (Ortak Düzenler) **Problem:** Uygulamanızdaki farklı sayfaların ortak bir başlık, navigasyon veya altbilgi gibi düzen elementlerine sahip olmasını istiyorsunuz, ancak her sayfada bu elementleri tekrar etmekten kaçınmak istiyorsunuz. **Çözüm:** Nuxt.js, `layouts/` dizininde tanımlanan layout'lar aracılığıyla ortak arayüz yapılarını yönetmenizi sağlar. `layouts/default.vue` ```vue ``` Varsayılan olarak, tüm sayfalar `default.vue` layout'unu kullanır. Başka bir layout tanımlayıp bir sayfada kullanmak için: `layouts/custom.vue` ```vue ``` Ve bir sayfada kullanmak için: `pages/special.vue` ```vue ``` `definePageMeta` composable'ı ile sayfanıza özel layout atayabilirsiniz. Bu yapı, büyük uygulamalarda tutarlı bir UI sağlamak için kritik öneme sahiptir. ## İleri Seviye Teknikler Nuxt.js'in temelini anladıktan sonra, uygulamanızı daha güçlü ve esnek hale getirecek ileri seviye tekniklere göz atalım. Bu teknikler, senior developer'lar için production-ready uygulamalar geliştirmede vazgeçilmezdir. ### 1. Middleware (Rota Koruma ve Yönlendirme) **Problem:** Belirli rotalara erişimi kontrol etmek, kullanıcıların oturum açmış olup olmadığını doğrulamak veya bir rotaya girmeden önce belirli verileri yüklemek istiyorsunuz. **Çözüm:** Nuxt.js'in middleware sistemi, bu tür işlemleri merkezi bir yerde yönetmenizi sağlar. Middleware'lar, bir rotaya erişilmeden önce veya erişildikten sonra çalışır. Bir middleware oluşturun: `middleware/auth.ts` ```typescript export default defineNuxtRouteMiddleware((to, from) => { // Gerçek bir uygulamada, burada bir kimlik doğrulama kontrolü yapılır const isAuthenticated = false; // Örnek olarak false varsayalım if (!isAuthenticated && to.path !== '/login') { console.log('Kullanıcı oturum açmamış, /login sayfasına yönlendiriliyor.'); return navigateTo('/login'); } }); ``` Bu middleware'ı bir sayfada kullanın: `pages/dashboard.vue` ```vue ``` Ve bir giriş sayfası oluşturalım: `pages/login.vue` ```vue ``` `http://localhost:3000/dashboard` adresine gitmeye çalıştığınızda, otomatik olarak `/login` sayfasına yönlendirildiğinizi göreceksiniz. Middleware'lar, uygulamanızın güvenliğini ve kullanıcı akışını yönetmek için güçlü bir araçtır. ### 2. Server API Routes (Kendi API'nızı Oluşturma) **Problem:** Frontend uygulamanızın ihtiyaç duyduğu özel bir backend mantığına veya harici API'leri bir araya getiren bir proxy'ye ihtiyacınız var, ancak ayrı bir backend servisi kurmak istemiyorsunuz. **Çözüm:** Nuxt.js, `server/api/` dizininde kendi API rotalarınızı oluşturmanıza olanak tanır. Bu rotalar doğrudan Nitro sunucu motoru üzerinde çalışır ve tamamen TypeScript desteklidir. Bir API rotası oluşturun: `server/api/hello.ts` ```typescript export default defineEventHandler(async (event) => { return { message: `Merhaba, Nuxt.js API! Bugün 2026-04-26.` }; }); ``` Bu API rotasını bir sayfada kullanın: `pages/api-test.vue` ```vue ``` `http://localhost:3000/api-test` adresine giderek kendi oluşturduğunuz API'den gelen mesajı görebilirsiniz. Bu, full-stack uygulamalar geliştirmek için Nuxt.js'i çok yetenekli kılar. ### 3. Pluginler (Global Fonksiyonellik Ekleme) **Problem:** Uygulamanız genelinde kullanılacak bir kütüphaneyi, global bir yardımcı fonksiyonu veya özel bir Vue eklentisini merkezi bir yerde yapılandırmak ve tüm Vue örneklerine enjekte etmek istiyorsunuz. **Çözüm:** Nuxt.js pluginleri, uygulamanızın başlangıcında çalıştırılacak kodları tanımlamanızı sağlar. `plugins/` dizinindeki dosyalar otomatik olarak yüklenir. Bir plugin oluşturun: `plugins/my-plugin.ts` ```typescript export default defineNuxtPlugin((nuxtApp) => { // Global bir yardımcı fonksiyon ekleyelim nuxtApp.provide('formatDate', (dateString: string) => { const date = new Date(dateString); return date.toLocaleDateString('tr-TR', { year: 'numeric', month: 'long', day: 'numeric' }); }); // Vue runtime'ına global bir özellik ekleyebiliriz // nuxtApp.vueApp.mixin({}); }); ``` Bu plugin'i bir bileşende veya sayfada kullanın: `pages/plugin-test.vue` ```vue ``` `$formatDate`'i herhangi bir `import` yapmadan doğrudan kullanabildiğimize dikkat edin. Pluginler, uygulamanıza global olarak özellikler eklemek için idealdir. ### 4. Modüller (Topluluk Entegrasyonları) **Problem:** Kimlik doğrulama, PWA özellikleri, i18n gibi karmaşık işlevsellikleri projenize kolayca entegre etmek istiyorsunuz, ancak bunları sıfırdan yazmak istemiyorsunuz. **Çözüm:** Nuxt.js'in modül sistemi, topluluk tarafından geliştirilen ve bakımı yapılan eklentilerle uygulamanızın yeteneklerini genişletmenizi sağlar. Modüller, Nuxt'ın dahili API'lerini kullanarak derin entegrasyonlar sunar. Örneğin, `@nuxtjs/tailwindcss` modülünü kurmak: ```bash npm install -D @nuxtjs/tailwindcss ``` `nuxt.config.ts` dosyanıza ekleyin: ```typescript export default defineNuxtConfig({ modules: [ '@nuxtjs/tailwindcss', ], // TailwindCSS özel konfigürasyonu buraya gelebilir tailwindcss: { cssPath: '~/assets/css/tailwind.css', configPath: 'tailwind.config', exposeConfig: false, injectPosition: 'first', viewer: true, } }) ``` `assets/css/tailwind.css` dosyasını oluşturun: ```css @tailwind base; @tailwind components; @tailwind utilities; ``` Artık Tailwind CSS sınıflarını doğrudan Vue bileşenlerinizde kullanabilirsiniz. Modüller, geliştirme sürecini hızlandıran ve best practice'leri uygulamanızı kolaylaştıran güçlü araçlardır. ### 5. Custom Composables (Yeniden Kullanılabilir Mantık) **Problem:** Birden fazla bileşende veya sayfada aynı reaktif mantığı (örneğin, fare koordinatlarını izleme, bir API'den veri çekme ve durumunu yönetme) tekrar tekrar yazmaktan kaçınmak istiyorsunuz. **Çözüm:** Vue 3'ün Kompozisyon API'si ve Nuxt.js'in otomatik içe aktarma özelliği sayesinde, kendi `composables/` dizininde özel composable'lar oluşturabilirsiniz. Bunlar, yeniden kullanılabilir ve test edilebilir reaktif mantık parçalarıdır. Bir composable oluşturun: `composables/useMouse.ts` ```typescript import { ref, onMounted, onUnmounted } from 'vue'; export function useMouse() { const x = ref(0); const y = ref(0); function update(event: MouseEvent) { x.value = event.pageX; y.value = event.pageY; } onMounted(() => window.addEventListener('mousemove', update)); onUnmounted(() => window.removeEventListener('mousemove', update)); return { x, y }; } ``` Bu composable'ı bir sayfada kullanın: `pages/mouse-tracker.vue` ```vue ``` `useMouse` composable'ını herhangi bir `import` ifadesi olmadan doğrudan kullanabildiğimize dikkat edin. Bu, kod tekrarını azaltır ve uygulama mantığınızı daha modüler hale getirir. ## Best Practices & Anti-Patterns Nuxt.js ile 2026'nın en iyi uygulamalarını takip ederek ve yaygın anti-pattern'lardan kaçınarak daha sağlam, performanslı ve sürdürülebilir uygulamalar geliştirebilirsiniz. Ekibimizde edindiğimiz tecrübelerle bu listeyi derledim. ### ✅ Doğru Yaklaşımlar (Best Practices) * **Tutarlı Dizin Yapısı:** `pages/`, `components/`, `composables/`, `stores/`, `middleware/`, `plugins/`, `server/api/` gibi Nuxt.js'in sunduğu dizin yapısını tutarlı bir şekilde kullanın. Bu, projenin okunabilirliğini ve bakımını kolaylaştırır. * **SEO için Meta Yönetimi:** Her sayfa için `useHead` composable'ını kullanarak `title`, `description`, `og:title`, `og:image` gibi meta etiketlerini dinamik olarak tanımlayın. Bu, arama motoru optimizasyonu için kritik öneme sahiptir. * **Performans için Lazy Loading:** Büyük bileşenleri veya rotaları yalnızca ihtiyaç duyulduğunda yüklemek için `defineAsyncComponent` veya Nuxt'ın otomatik lazy loading özelliklerini kullanın. Özellikle `` gibi bileşenler, görüntü optimizasyonu için harikadır. * **TypeScript Kullanımı:** Projenizi TypeScript ile başlatın (`npx nuxi init --template typescript my-nuxt-app`). Bu, kod kalitesini artırır, hataları derleme zamanında yakalar ve geliştirici deneyimini iyileştirir. * **Sunucu Tarafı Veri Çekimi:** `useFetch` veya `useAsyncData` gibi Nuxt.js'in veri çekim composable'larını kullanarak sunucu tarafında veri çekimi yapın. Bu, daha iyi SEO ve ilk yükleme performansını sağlar. * **Hata Yönetimi:** `useError` composable'ı ve `error.vue` sayfası ile uygulama genelinde hata yönetimini merkezi bir şekilde ele alın. Kullanıcıya dostu hata sayfaları sunun. * **Güvenlik Odaklılık:** Sunucu API rotalarında (server/api) gelen verileri her zaman doğrulayın ve sanitize edin. XSS (Cross-Site Scripting) ve CSRF (Cross-Site Request Forgery) gibi yaygın web güvenlik açıklarına karşı önlemler alın. Ortam değişkenlerini hassas bilgiler için kullanın (`.env`, `runtimeConfig`). * **Modüler Mimari:** Uygulamanızın karmaşıklığı arttıkça, Nuxt modüllerini veya kendi özel modüllerinizi kullanarak belirli işlevsellikleri soyutlayın ve yeniden kullanılabilir hale getirin. * **Test Etme:** Uygulamanızın temel işlevselliğini ve kritik bileşenlerini test etmek için Vitest veya Cypress gibi araçları kullanın. Testler, uygulamanızın zaman içinde istikrarlı kalmasını sağlar. ### ❌ Yanlış Yaklaşımlar (Anti-Patterns) * **Gereksiz Client-Side Kod:** Sunucu tarafında render edilmesi gereken bir sayfada, `onMounted` içinde büyük veri çekim işlemleri yapmak veya gereksiz yere client-side kütüphaneler yüklemek performansı düşürür. * **Manuel Import Karmaşası:** Nuxt.js'in otomatik içe aktarma (auto-imports) özelliğini göz ardı ederek bileşenleri, composable'ları veya yardımcı fonksiyonları manuel olarak import etmeye çalışmak. Bu, kodunuzu gereksiz yere uzatır. * **Hassas Bilgileri Frontend'de Saklama:** API anahtarları veya veritabanı kimlik bilgileri gibi hassas bilgileri doğrudan istemci tarafı koduna gömmek ciddi güvenlik riskleri taşır. Bunun yerine `runtimeConfig` veya sunucu API rotalarını kullanın. * **SEO Meta Etiketlerini Göz Ardı Etme:** `useHead` kullanmadan sayfaların `title` ve `description` etiketlerini boş bırakmak veya dinamik yapmamak, arama motoru sıralamanızı olumsuz etkiler. * **Tek Bir Büyük Pinia Store:** Tüm uygulama durumunu tek bir Pinia store içinde yönetmeye çalışmak. Store'ları mantıksal modüllere ayırarak daha yönetilebilir ve ölçeklenebilir bir yapı oluşturun. * **CSS Kapsamını İhmal Etme:** Bileşenler arası CSS çakışmalarını önlemek için `