Varlıklar ve Özel Özellikler
Koleksiyonları withEntities ile yönetin
Varlıklar ve Özel Özellikler, CoddyKit'te ücretsiz bir Angular Academy dersidir. Bu, 4 dersinin 4. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Angular Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Angular Academy kursu toplamda 4 dersten oluşur.
Koleksiyonları Yönetme
Kayıt listeleri (yapılacak işler, kullanıcılar ve ürünler) o kadar yaygındır ki NgRx, bunları normalleştirilmiş durum ve kullanıma hazır güncelleyici işlevlerle yönetmek için withEntities sunar.
withEntities
withEntities, öğeleri bir entityMap içinde kimliklerine göre ve sıralı bir ids dizisinde saklar; ayrıca listenin entities hesaplanmış sinyalini sunar.
import { withEntities } from '@ngrx/signals/entities';
export const TodoStore = signalStore(
withEntities<Todo>()
);
// store.entities() -> Todo[]Varlık Güncelleyicileri
Güncelleyici yardımcılarını patchState ile kullanın: setAllEntities, addEntity, updateEntity, removeEntity. Bunlar eşlemeyi ve kimlik sırasını tutarlı hâlde tutar.
import { addEntity, removeEntity, updateEntity } from '@ngrx/signals/entities';
patchState(store, addEntity({ id: '1', title: 'A', done: false }));
patchState(store, updateEntity({ id: '1', changes: { done: true } }));
patchState(store, removeEntity('1'));Koleksiyon Yükleme
Getirme işleminden sonra koleksiyonun tamamını, diziyi eşlemeye ve kimliklere normalleştiren setAllEntities ile değiştirin.
import { setAllEntities } from '@ngrx/signals/entities';
load: rxMethod<void>(pipe(
switchMap(() => api.getTodos()),
tap(todos => patchState(store, setAllEntities(todos)))
))Özel idKey
Varlığınızın tanımlayıcısı id değilse bir seçici geçirin. Mağaza, eşlemedeki anahtarları bu alana göre oluşturur.
withEntities<User>(); // expects user.id
// custom key:
patchState(store, addEntity(user, { selectId: (u: User) => u.uuid }));Varlıklardan Türetme
Koleksiyon üzerinde filtrelenmiş veya sayılmış okuma modelleri oluşturmak için withEntities ile withComputed'ı birleştirin.
withComputed(({ entities }) => ({
remaining: computed(() => entities().filter(t => !t.done).length)
}))Özel Özellik Nedir
Özel özellik, birçok mağazaya ekleyebileceğiniz, yeniden kullanılabilir bir durum, hesaplanmış değerler ve yöntemler paketidir. signalStoreFeature ile oluşturulur.
import { signalStoreFeature, withState } from '@ngrx/signals';
export function withLoading() {
return signalStoreFeature(
withState({ loading: false })
);
}Bir Özelliği Yeniden Kullanma
Özel özelliğinizi yerleşik bir özellik gibi herhangi bir mağazaya ekleyin. Yükleme bayrakları veya sayfalama gibi kesişen sorumlulukları bu şekilde paylaşırsınız.
export const TodoStore = signalStore(
withLoading(),
withEntities<Todo>()
);
// store.loading() now existsYöntem İçeren Özellikler
Özel bir özellik, setLoading yardımcıları gibi yeniden kullanılabilir davranışlar sunmak için withMethods içerebilir.
export function withLoading() {
return signalStoreFeature(
withState({ loading: false }),
withMethods((store) => ({
setLoading(loading: boolean) { patchState(store, { loading }); }
}))
);
}Birleştirilebilirlik
Özellikler, özellik tanımlayıcıları döndüren işlevlerden ibaret olduğundan birçok özelliği üst üste ekleyebilirsiniz: withLoading(), withEntities() ve uygulamaya özgü durum; bunların tümü güçlü biçimde türlendirilmiş tek bir mağazada birleşir.
Genel Özellikler
Özellikleri varlık türleri arasında çalışacak şekilde genel hâle getirin. Tür parametreleri aktarılır; böylece tüketiciler tam tür güvenliğini korur.
export function withSelected<T>() {
return signalStoreFeature(
withState({ selected: null as T | null })
);
}Hızlı Kontrol
Varlıklar ve özelliklerle ilgili bilginizi kontrol edin.
Özet
withEntities ile koleksiyonları yönettiniz (normalleştirilmiş eşleme, güncelleyici yardımcıları ve türetilmiş okuma modelleri) ve durumları, hesaplanan değerleri ve yöntemleri depolar arasında paylaşmak için yeniden kullanılabilir, genel signalStoreFeature paketleri oluşturdunuz.
Sıkça Sorulan Sorular
“Varlıklar ve Özel Özellikler” dersi ücretsiz mi?
Evet — “Varlıklar ve Özel Özellikler” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Angular Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Angular Academy kursu toplamda 4 dersten oluşur.
“Varlıklar ve Özel Özellikler” dersinde ne öğreneceğim?
Koleksiyonları withEntities ile yönetin Angular Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Angular Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Angular Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 4. dersidir.
“Varlıklar ve Özel Özellikler” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Angular Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Angular Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- SignalStore Oluşturma
- Hesaplanan Durum ve Yöntemler
- Eş Zamanlı Olmayan İşlemler için rxMethod
- Varlıklar ve Özel Özellikler