Başlangıç dosyalarını bulabileceğiniz repom: js-30 | github
JS ile bugüne kadar oluşturduğumuz değerlerin tamamını her sayfa yenilenmesinde kaybediyorduk. Bugün Local Storage API kullanarak tarayıca kalıcı olarak veri saklayacağız ve demoda da görüleceği gibi bir Alışveriş Listesi projesi geliştireceğiz.
Başlamadan önce Local Storage hakkında bir not
LocalStorage ile yalnızca key-value değerleri saklayabiliriz ve value'muz sadece ve sadece string olabilir. Dolayısıyla aşağıdaki gibi bir ekleme işleminde problem yaşamayız.
Ancak örneğin bir object'i localStorage'a eklemeye çalışırsak;
Burada görüleceği gibi object localStorage'a kaydedilerken .toString metoduyla otomatik olarak stringe dönüştürüldüğünden doğru bir şekilde kaydedilmedi. Bu sorunu çözmek için JSON.stringify kullanarak objecti stringe doğru bir şekilde dönüştürmeliyiz ve local storage'dan bu değeri okurdan JSON.parse kullanmalıyız.
Javascript Event Delegation Konsepti
Bu projede karşılaşacağımız önemli bir konsept ise Event Deleagation. Projemizde bir ul etiketimiz var ve içerisinde alınacak ürünler li etiketiyle oluşturuluyor. Bu ürünler alındığında üstüne tıklanarak işaretlenecek ancak site ilk açıldığında li etiketleri olmadığından bunları takip etmemmiz mümkün değil. İşte burada li elementlerini kapsayan parent'a (yani ul elementine) event listener ekliyoruz ve dinlerken tıklanan ilgili elementi anlayabiliyoruz. Basit bir örnek şu olabilir:
Bu örnekte her element öge için ayrı ayrı olay dinleyicisi eklemek yerine, üst ögeye tek bir olay dinleyicisi ekleyerek işlemi gerçekleştirdik.