<h3>
    <a name="the-raw-future-endraw-config-block-is-gone" href="#the-raw-future-endraw-config-block-is-gone"></a>
    <code>future</code> ayar bloğu kaldırıldı
</h3>

<p>Eğer v2'nin <code>future</code> seçeneklerini <code>createInertiaApp</code> kapsamında kullanıyorsanız, <code>future</code> bloğunu tamamen silin. Tüm dört seçenek artık her zaman açıktır ve kapatılamaz.</p>

<div class="highlight js-code-highlight">
    <pre class="highlight javascript"><code><span class="c1">// Önce (v2)</span>

createInertiaApp({
defaults: {
future: {
preserveEqualProps: true,
useDataInertiaHeadAttribute: true,
},
},
})

// Sonra (v3): sadece kaldırın
createInertiaApp({
// …
})

<h3>
    <a name="config-file-restructuring" href="#config-file-restructuring"></a>
    Ayar dosyası yeniden yapılandırması
</h3>

<p><code>vendor:publish --force</code> komutunu çalıştırdıktan sonra, yeni <code>config/inertia.php</code> dosyasını açın ve eski dosyanızla yan yana karşılaştırın. Sayfa ile ilgili ayarlar bir <code>pages</code> anahtarı altında taşındı ve <code>testing</code> bölümü basitleştirildi. Sadece üzerine yazmaya güvenmeyin. Karşılaştırmayı inceleyin. Eski yapılandırmanızı kaydettiyseniz, <a href="https://hafiz.dev/tools/diff-checker" target="_blank" rel="noopener noreferrer">Diff Checker aracı</a> bu konuda yardımcı olur.</p>

<h3>
    <a name="esmonly-output" href="#esmonly-output"></a>
    ESM-sadece çıkışı
</h3>

<p>Tüm Inertia paketleri artık yalnızca ES Modülleri olarak gönderilir. CommonJS <code>require()</code> çağrıları artık çalışmıyor.</p>

<div class="highlight js-code-highlight">
    <pre class="highlight javascript"><code><span class="c1">// Önce (v2): bazı kurulumlarda çalışıyordu</span>

const { router } = require(@inertiajs/vue3<span class=”dl>’)

// Sonra (v3): yalnızca ESM
import { router } from <span class=”dl>’@inertiajs/vue3<span class=”dl>’

<p>Herhangi bir, kurulumunuz CommonJS'a dayalı ise, bu durumu dikkatlice gözden geçirmeniz önemlidir.</p>

<h2>
    <a name="two-things-worth-using-right-away" href="#two-things-worth-using-right-away"></a>
    Hemen Kullanılmaya Değer İki Özellik
</h2>

<p>Güncelleme tamamlandıktan sonra, hemen ulaşılması gereken iki özellik var.</p>

<p><strong><code>useHttp</code> ile sayfa dışı istekler için.</strong> Eğer <a href="https://hafiz.dev/blog/laravel-vue-3-composition-api-build-modern-full-stack-spas" target="_blank" rel="noopener noreferrer">Laravel + Vue SPA</a> geliştiriyorsanız ve herhangi bir arama kutusu, otomatik tamamlama alanı ya da sayfa ziyaretlerine dayanmayan arka plan veri getirimi varsa, bunları <code>useHttp</code> ile değiştirin. Reaktif durumu, uygun hata yönetimini ve yükleme ilerlemesini bedava alırsınız. Artık Inertia bileşenlerine Axios çağrılarını karıştırmaya gerek yok.</p>

<p><strong>İyimser güncellemeler, etkileşimli işlemler için.</strong> Düğmeler, takip düğmeleri, anahtarlar gibi, kullanıcının bir eylem aldığı ve bunun başarılı olacağından emin olduğunuz her şey için. İsteğin öncesinde <code>.optimistic()</code> zinciri tanımlayın, beklenen durum değişikliğini belirtin ve bir şey ters giderse Inertia'nın geri alma işlemini halletmesine izin verin. Bu tür bir UX iyileştirmesi, sıfırdan doğru bir şekilde uygulamak için birkaç gün alır ve v3 ile on dakikada yapılır.</p>

<p>Eğer Inertia ile birlikte tip güvenli yönlendirme için Wayfinder kullanıyorsanız, <a href="https://hafiz.dev/blog/laravel-wayfinder-type-safe-routes-and-forms-with-inertia" target="_blank" rel="noopener noreferrer">Laravel Wayfinder kılavuzu burada</a> üzerinden gözden geçirmeye değer çünkü Inertia v3'ün tiplenmiş form generikleri, Wayfinder'ın tipli rota parametreleri ile iyi bir şekilde eşleşiyor.</p>

<h2>
    <a name="should-you-upgrade-this-weekend" href="#should-you-upgrade-this-weekend"></a>
    Bu Hafta Sonu Güncelleme Yapmalı Mısınız?
</h2>

<p>Bu, yığınınıza bağlı.</p>

<p><strong>Şimdi yükseltin</strong>, eğer Vue 3, Laravel 11+, PHP 8.2+ ve Vite 7+ kullanıyorsanız. Kırılma değişiklikleri gerçek ama mekanik. Arama ve değiştir, iki üç yöntemi yeniden adlandır, konfigürasyonu yeniden yayınla, görünümleri temizle. Yukarıdaki kontrol listesindeki çoğu öğe beş dakikadan az sürer. Bir öğlede güncellemeyi bir gündelik iş haline getirirsiniz. Vite eklentisi bile bunu değerli hale getiriyor ve kaldırılan Axios bağımlılığı, bunun için başka bir çaba harcamadıktan sonra kazanç ise, kazançtır.</p>

<p><strong>Bekle</strong> eğer React adapter kullanıyorsanız ve henüz React 19'a geçmediyseniz. Bu ayrı, daha büyük bir yükseltmedir ve ikisini aynı anda yapmamalısınız. Önce React 19'a geçişinizi yapın, her şeyin düzgün çalıştığından emin olun, ardından Inertia v3'ü ekleyin. Aynı hikâye Svelte 4 uygulamaları için de geçerlidir. Svelte 5 runes geçişi, gerçekten bir yazım değişikliğidir, yeniden bulma değildir. Onu Inertia güncellemesi ile aynı PR içine almayın.</p>

<p><strong>Aceleniz olmasın</strong> eğer üretim uygulamanızla SSR çalışıyorsanız ve test etmek için düzgün bir sahneleme ortamınız yoksa. v3'teki SSR iyileştirmeleri gerçekten iyi fakat SSR değişiklikleri arasında ortamlar arasında davranış farklılıkları ortaya çıkma olasılığı en yüksektir. Staging'de test edin, bir gün gözlemleyin, ardından yayına alın.</p>

<p>Bir bilgi daha: Laravel Boost, bunu kullanıyorsanız <code>UpgradeInertiaV3</code> istemini içerir. Manuel olarak yapmadan önce otomatik güncellemeyi kontrol etmeye değer.</p>

<p>v2 hemen kaybolmayacak, böylece acele etmeye gerek yok. Ancak v3, daha iyi bir versiyon ve gereksinimleriniz zaten karşılanıyorsa, neden bu üzerinde oturuyorsunuz ki?</p>

<h2>
    <a name="frequently-asked-questions" href="#frequently-asked-questions"></a>
    Sık Sorulan Sorular
</h2>

<p><strong>Yeni Vite eklentisini kullanmak zorunda mıyım?</strong></p>

<p>Hayır. <code>@inertiajs/vite</code> eklentisi isteğe bağlıdır. Mevcut yapılandırmanız, <code>resolve</code> ve <code>setup</code> geri çağrıları ile hala v3'te çalışmaktadır. Eklenti, isterseniz işleri basitleştirir.</p>

<p><strong>Hâlâ Axios'u Inertia v3 ile kullanabilir miyim?</strong></p>

<p>Evet. Axios artık paketlenmiyor veya zorunlu değil, ancak bir isteğe bağlı akraba bağımlılığı olarak hala mevcut. Manuel olarak yükleyin ve mevcut interceptor yapılandırmanızı korumak istiyorsanız Axios adapterini kullanın.</p>

<p><strong>Laravel 10 kullanıyorsam ne olur?</strong></p>

<p>Laravel adapter v3, en az Laravel 11'i gerektiriyor. Önce Laravel'i güncellemeniz gerekecek. Laravel 10'un son kullanma tarihi Ağustos 2026'dır, bu yüzden geçiş yapmak yine de değerlidir.</p>

<p><strong>Inertia v3, Filament ile çalışır mı?</strong></p>

<p>Filament, Livewire altında çalışıyor, Inertia ile etkileşimi yok. Inertia işletimindeki bir ön uç ile Filament ile bir yönetim paneli oluşturuyorsanız, Inertia güncellemesi Filament'i etkilemeyecektir.</p>

<p><strong><code>useHttp</code> hook, tüm üç adapterde mevcut mı?</strong></p>

<p>Evet. Vue, React ve Svelte tümü için mevcut. API, adapterler arasında aynı: reaktif <code>processing</code>, <code>errors</code>, <code>progress</code> ve <code>isDirty</code> durumu, artı <code>get()</code>, <code>post()</code>, <code>put()</code>, <code>patch()</code> ve <code>delete()</code> yöntemleri.</p>

<h2>
    <a name="whats-next" href="#whats-next"></a>
    Sırada Ne Var?
</h2>

<p>Güncelleme tek başına zor değil. Gerçek iş, kod tabanınızı üç veya dört farklı kırılma değişikliğini incelemek oluyor. Yukarıdaki kontrol listesini baştan sona gözden geçirin, düzeltmeniz gerekenleri düzeltin ve ana dosyaya dokunmadan önce bir özellik dalı üzerinde test edin.</p>

<p>Eğer sıfırdan yeni bir Laravel uygulaması oluşturuyorsanız ve Inertia kullanıp kullanmamayı tartışıyorsanız, v3 şimdiye kadar en cezbedici versiyonudur. Daha küçük paket, daha az yapılandırma ve bir dizi özellik, çoğu kullanım durumu için ayrık SPA kurulumları ile ciddi bir rekabet edebilir.</p>

<p>Belirli bir güncelleme sorunuz veya karşılaştığınız garip bir kenar durumu varsa, <a href="https://hafiz.dev/#contact" target="_blank" rel="noopener noreferrer">ulaşın</a>, üzerinde derinleşmekten memnuniyet duyarım.</p>

Kaynak: Orijinal Makale

Bu Makaleyi Paylaş