Son zamanlarda, kodu sadeleştirmek ve paylaşılan bir durumu korumak için mevcut angular2 uygulamasına ngrx deposunu ekledim. Ancak, bir bölüm hakkında kafam karıştı, ben durumumu bir kez sunucudan güncellerim ve koğuştan sonra sunucuyu kontrol etmeden sadece devlet üzerinde çalışıyorum. Öyleyse örneğin arka taraftaki bazı şeyler değiştiğinde ne olur? Her seferinde kontrol edeyim, o sayfaya giderim veya daha iyi bir yol var mı? Temel olarak, devlet verilerinizin sunucu verilerini göstermek için güncellendiğinden emin olmak için en iyi uygulamanın ne olduğunu bilmek isterim?Ngrx mağazam sunucu tarafında nasıl değişiklik algılar?
cevap
NGRX Effects kullanmanız önerilir. NGRX Efektlerini Mağaza ile birlikte uyguladığınızda, herhangi bir HTTP yan etkisi Etkiler tarafından ele alınır, bu da verileri güncellemek için Mağazada bir Eylem kullanır. Bir Etki, Eylemi dinler ve bir yan etki (HTTP) gerçekleştirmek için Eylemin yükünü kullanır. Efekt bittiğinde, yeni bir yük ile yeni bir Eylem (başarı için bir Eylem veya başarısızlık için bir eylem) çağırır, böylece Mağazadaki verileri günceller. example in the Effects docs yılında
o Login
için bir etkisi gösterilmektedir:
@Injectable()
export class AuthEffects {
constructor(
private http: Http,
private actions$: Actions
) { }
@Effect() login$ = this.actions$
// Listen for the 'LOGIN' action
.ofType('LOGIN')
// Map the payload into JSON to use as the request body
.map(action => JSON.stringify(action.payload))
.switchMap(payload => this.http.post('/auth', payload)
// If successful, dispatch success action with result
.map(res => ({ type: 'LOGIN_SUCCESS', payload: res.json() }))
// If request fails, dispatch failed action
.catch(() => Observable.of({ type: 'LOGIN_FAILED' }))
);
}
Bu örnekte, Giriş için Efekt LOGIN
eylem için dinler. LOGIN
eylemi oluştuğunda, eylemin yükünü kullanır ve bir HTTP POST gerçekleştirir. HTTP POST geri döndüğünde, ya yük için json yanıtıyla LOGIN_SUCCESS
eylemini çağırır veya LOGIN_FAILED
eylemini döndürür.
Bu şekilde, Mağazanız her zaman HTTP gibi herhangi bir yan etkide döngüde tutulur. Bir bileşen veritabanındaki bir kaydı güncellerse, Etki, bu verilere abone olan tüm bileşenlerin güncellenmiş verileri alması için Mağaza'ya bildirmelidir.
Bu yardımcı olur umarım.
gibi sunucu bildirimleri hakkında konuşuyor musunuz? Ayrıntılı yanıt için teşekkürler Tyler. Ne demek istediğini kısmen anlıyorum. Henüz NGRX Efektleri açmamıştım. Ama şimdi yapacağım, bu muhtemelen endişelerimi çözecektir. Çok teşekkürler –
Orada Efektleri olması gerekenden daha karmaşık hale getiren birçok örnek var. Esasen mevcut HTTP çağrılarınız, belirli Eylemler'i dinleyerek ve sonra yeni İşlemleri yeni yüklerle geri getirerek Etkiler olarak davranacak şekilde değiştirilebilir. Efektin dinleyeceği eylem (yukarıdaki örnekte LOGIN gibi), Efekt yeni bir eylem ile yeni bir eylemi çağırıncaya kadar değiştirilmemiş bir yükü hemen bileşenlere geri göndermeye ihtiyaç duyabilir. –
Etkiler için güzel bir açıklama, ancak soruya cevap vermeyebilir? Q'yu anladığım: sunucudaki bir şey değişir (ör. Kullanıcı B, listemdeki bir Todo'yu tamamlar). Sunucu bunu nasıl geri gönderir (Serverside olayları, web soketleri, Mq ...) ve hangi kod parçası mağaza için eylemi tetikler? – stwissel
- 1. sunucu tarafında
- 2. sunucu tarafında
- 3. Sunucu tarafında webrtc uygulaması
- 4. Sunucu tarafında ImageMagick
- 5. Demir yönlendirici sunucu tarafında Meteor.user()
- 6. Sunucu tarafında nasıl hata ayıklama WebStorm
- 7. Meteor sunucu tarafında mongo grubu nasıl yapılır
- 8. Asp.net'de sunucu tarafında tarayıcı yakın nasıl algılanır?
- 9. .NET Uzak sunucu tarafında asılı
- 10. NodeJs sunucu tarafında işlem yapılıyor
- 11. Sunucu tarafında uygulama istekleri gönderme
- 12. İstemci tarafında dosya açılamadı, sunucu tarafı çalıştı.
- 13. Neden jQuery'yi sunucu tarafında düğüm ile kullanıyorsunuz?
- 14. Google Grafiksel bir sunucu tarafında sakla
- 15. UTL_FILE sunucu tarafı kullanımı/istemci tarafında kullanımı
- 16. Dart, sunucu tarafında geliştirmeyi destekleyecek mi?
- 17. Yelkenler 0.11 sunucu tarafında yakalanan soket olayları
- 18. HttpRequestMessage/StreamContent, boş Sunucu tarafında akış
- 19. nasıl JavaScript tarafından manipülasyon için istemci tarafında üzerine ben sunucu tarafında yarattık dizisi geçmesi nasıl istemci tarafında
- 20. Sunucu tarafında derlenmiş meteor css paketi nasıl alınır?
- 21. Sunucu tarafında Android uygulama içi fatura makbuzu nasıl doğrularız?
- 22. sdl tridion'da sunucu tarafında uygulama (canlı sohbet gibi) nasıl geliştirilir?
- 23. Node.js ile sunucu tarafında birden çok JS dosyası nasıl yönetilir?
- 24. İstemci tarafında sunucu tarafındaki mongo'ya bağlantı beklemeye nasıl hazırdır?
- 25. Sunucu tarafında dosya yükleme metni nasıl temizlenir (C#)
- 26. gibi sunucu tarafında onları işlenmiş zaman verilerle bileşenlerini görüntülemeyi nasıl
- 27. İstemci tarafında oturum açtıktan sonra sunucu tarafında G + kullanıcılarının kimliğini doğrulamak
- 28. ngrx/effects kütüphanesinin amacı nedir?
- 29. JSON boş dizesi, sunucu tarafında null olarak niteleniyor?
- 30. Angular2/ngrx ve API çağrıları
[Server Gönderilen Olaylar] (https://en.wikipedia.org/wiki/Server-sent_events) –