ATERTIAJS, Sunucu tarafı yönlendirmesini istemci tarafı oluşturma ile harmanlayan benzersiz bir yaklaşımla, tek sayfalık uygulamalarda (SPA'lar) durum yönetimini işler ve React veya Vue gibi çerçevelerle inşa edilen geleneksel SPA'larda tipik ayrı bir istemci tarafı durum yönetim sistemine olan ihtiyacı ortadan kaldırır. İşte intertiaJ'lerin devleti nasıl yönettiğine dair kapsamlı bir açıklama, bir spa bağlamında duyarlılığı ve sorunsuz geçişleri koruyarak:
ATERTIAJS esasen, tam sayfa yeniden yüklemeleri gerektirmeden sayfa ziyaretlerine izin veren bir istemci tarafı yönlendirme kütüphanesi olarak hareket eder. Her navigasyonda tam bir HTML sayfası getiren tarayıcı yerine, atalet bağlantı tıklamalarını keser ve sunucudan JSON yanıtlarını getirir. Bu yanıtlar, sayfanın durum verileri (sahne) ile birlikte sayfa bileşeni adını içerir. Bu veri odaklı yaklaşım, sunucunun her sayfa için istemciye hangi durumun veya verilerin gönderildiğini kontrol ettiği anlamına gelir;
Çekirdek durum yönetimi mekanizması, oluşturulacak bileşeni ve ona aktarılacak olanları içeren mevcut "sayfa nesnesi" nin tutulması etrafında döner. Sunucu, belirli bir yol için ilgili durum verileriyle bu sayfa nesnesini oluşturur. Navigasyon gerçekleştiğinde, atalet tam sayfa yeniden yüklemesi yerine bir XHR (AJAX) isteği gerçekleştirir. Yeni sayfa nesnesini alır, geçerli olanla karşılaştırır ve uygun durumlarda önceki durumu kaybetmeden bileşenleri ve sahneleri değiştirerek ön ucu günceller.
Durumu navigasyon boyunca korumak veya form girişinin tutulması gibi durumlarda, atalet `` useremember '' adlı bir özellik sağlar. Bu yardımcı program, tarayıcının geçmiş durumuna bileşen durumunu (genellikle statü oluşturur) kaydeder ve kullanıcıların girdilerini kaybetmeden uzaklaşmasına ve geri dönmesine izin verir. `` UserEnember '' herhangi bir veri nesnesine uygulanabilir ve benzersiz bir anahtar vererek, Atalet, kullanıcı bu sayfayı veya bileşeni tekrar ziyaret ettiğinde durumu geri yüklemeye kaydeddiğini bilir. Bu, yalnızca istemci tarafındaki durumun davranışını taklit eder, ancak SPA'nın navigasyon yaşam döngüsünden yönetir.
When dealing with forms, Inertia offers an enhanced form helper `useForm` that not only manages form state but also automatically remembers the state between page visits unless explicitly cleared. Bu, kullanıcıların navigasyon hakkında form verilerini kaybetmedikleri ve karmaşık istemci tarafı durum çözümlerine ihtiyaç duymadan UX'i geliştirmediği anlamına gelir.
Atalet ayrıca, her istek üzerine sunucudan geçirilen paylaşılan destekleri kullanarak global verileri sayfalar arasında paylaşmayı destekler. Bu, kimlik doğrulama durumu, kullanıcı bilgileri veya flaş mesajları gibi verileri içerir. Bu paylaşılan sahne, her sayfa bileşeninin sahne ile otomatik olarak birleştirilir ve ekstra manuel yönetim olmadan uygulama boyunca mevcut tutarlı, merkezi durumun sağlanmasını sağlar.
Protokol ataleti kullanımı, istemci ve sunucu varlığı senkronizasyonunu işlemek için, bayat JavaScript veya CSS dosyalarının neden olduğu durum uyumsuzluklarından kaçınan bir sürüm özelliği de içerir. Sunucu bir sürüm değişikliğini algıladığında, uygulama durumunu sıfırlamak ve en son varlıkları yüklemek için tam sayfa bir yeniden yüklemeyi zorlar.
Ataletin durumu sunucu tarafı yolları ve denetleyicileri ile sıkı bir şekilde entegre edildiğinden, sunucu mantığının veri kullanılabilirliğini belirlediği bir kullanım modelini teşvik eder ve ön uç bu verileri bildiren tüketir. Sonuç olarak, eşzamansız veri getirme ve senkronizasyonun işlenmesi gibi istemci ağır spa'nın doğasında bulunan durum yönetimi karmaşıklığının çoğu, sunucu tarafı çerçevesine yüklenir. Bu, basitleştirilmiş istemci koduna ve durum senkronizasyonunun etrafında daha az kaynak plakasına yol açar.
Özetle, ATERTIAJS SPAS'taki Devleti şu şekilde ele alır:
- Geçerli sayfa durumunu temsil etmek için sunucu yollarından gönderilen JSON sayfa nesnelerini kullanarak.
- Tam HTML sayfalarından ziyade minimal JSON verilerini almak için gezinmeyi engellemek.
- Her rota değişikliğindeki sahne ile uygun istemci tarafı bileşenlerini dinamik olarak oluşturur.
- Tarayıcı geçmişi aracılığıyla navigasyonlarda bileşen durumunu devam ettirmek için `` useremember '' sağlamak.
- Form durumunu yönetmek ve hatırlamak için özel form yardımcıları (`` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` ``) 'i kullanmak.
- SPA boyunca küresel, tutarlı durum için paylaşılan sunucu verilerinin (paylaşılan sahne) izin verilmesi.
- Müşteri ve sunucuyu senkronizasyonda tutmak için varlık sürümlerinin yönetilmesi, uygulama durumu bütünlüğünü koruyarak.
- İşletme ve veri mantığını sunucu tarafına boşaltmak, istemci tarafı karmaşıklığını en aza indirir.