Bir arkadaşınla birlikte bir Kitap Alışveriş Sitesi projesine başladın.
Arkadaşın state ve props kullanarak belli bir aşamaya kadar getirdi. Proje daha fazla büyümeden bu aşamada React ContextAPI kullanmayı düşündün ve çalışmalara başladın.
2 ana hedefin var:
- Projeyi ContextAPI kullanır hale getirmek
- Add to cart butonunu ve özelliğini çalışır hale getirmek
-
srcaltındacontextsklasörü ve içindeProductContextProvider.jsxdosyası oluştur.createContextile birProductContextoluştur. Export etmeyi unutma.
-
ProductContext.Providerı return edecek bir component fonksiyonu oluştur. AdıProductContextProviderolsun. Default olarak export et.- İçinde
productsadıyla bir state oluştur. Başlangıç değeri olarakdatadosyasındaki içeriği kullanmalısın. - Bu state'i
ProductContext.Provider'a value olarak ver. - Bu component
childrenpropsu almalı ve return etmeli.
- İçinde
-
App.jsxde tüm kodu bu provider component ile sarmala. -
App.jsxdeProductscomponentine gönderdiğin propları ve ilgili kısımları sil. -
Products.jsxde,useContextveProductContextkullanarakproductsverisini al ve kullan. Kullanılmayan props kodunu sil.
-
src/contextsiçindeCartContextProvider.jsxdosyası oluştur.createContextile birCartContextoluştur. Export etmeyi unutma.
-
CartContext.Providerı return edecek bir component fonksiyonu oluştur. AdıCartContextProviderolsun. Default olarak export et.- İçinde
cartadıyla bir state oluştur. addItemmetodu oluştur.removeItemmetodu oluştur.- CartContext.Provider'a
cart,addItemveremoveItemıvalueolarak vermeyi unutma. - Bu component
childrenpropsu almalı ve return etmeli.
- İçinde
-
App.jsxde uygulamanı bu provider ile de sarmala. -
App.jsxdeNavigationveShoppingCartcomponentine gönderdiğin propları sil. -
Navigation.jsxdeuseContextveCartContextkullanarak cart bilgisini al. -
ShoppingCart.jsxdeuseContextveCartContextkullanarak cart bilgisini al. -
ShoppingCartItem.jsxdeuseContextveCartContextkullanarak removeItem fonksiyonu al ve kullan. Kullanılmayan props kodunu sil. -
Products.jsxdeuseContextveCartContextkullanarak addItem fonksiyonunu al.
ÖNEMLİ NOT:
Her adımdan sonra testlerde ilerleme olmayabilir.
Uygulamayı çalışır hale getirmeye odaklanırsanız
günün sonunda tüm testler geçecektir.- Bu sayfanın sağ üst köşesindeki Fork butonuna tıklayın
- Kendi GitHub hesabınızda proje kopyası oluşacak
Görseldeki adımları takip edin ya da terminali kullanabilirsiniz.
git clone [buraya-kendi-fork-linkinizi-yazın]
cd [proje-klasor-adi]Terminal açın ve sırasıyla şu komutları çalıştırın:
npm install
npm run c2w💡 İpucu: Bu komutlar gerekli paketleri yükler ve test sistemini başlatır.
Yeni bir terminal tabı açın ve şu komutu çalıştırın:
npm run devBu komut projeyi çalıştıracak ve bir link verecek. Bu linki browserda açın ve yazdıklarınızın çıktısını gözlemleyin.
- Testlerin çalıştığı terminali açık tutun ve test çıktılarını izleyin
- Başarılı testler ✅, başarısız testler ❌ ile gösterilir
- Her küçük ilerleme sonrası değişiklikleri kaydedin
- Testlerin durumunu kontrol edin
- Bir özelliği tamamen bitirdikten sonra commit yapın
GitHub Desktop uygulamasını kullanarak ilerlemenizi sıklıkla GitHub'a gönderin. Ya da terminali kullanabilirsiniz:
git add .
git commit -m "Anlamlı bir commit mesajı"
git push origin mainBu proje otomatik test sistemi ile gelir. Test sonuçları terminal penceresinde görünür. Kırmızı (❌) testleri yeşile (✅) çevirmeye odaklanın.
- npm komutları çalışmıyor: Node.js kurulu olduğundan emin olun
- Testler çalışmıyor: Terminal penceresini kapatıp
npm run c2wkomutunu tekrar çalıştırın
- Terminal hatasını tam olarak okuyun
- Dosya yollarının doğru olduğunu kontrol edin
- Değişiklikleri kaydettiğinizden emin olun
- ✅ Projeyi fork edin ve clone edin
- ✅
npm installvenpm run c2wçalıştırın - ✅
npm run devile projeyi çalıştırın ve size verdiği linki açarak yaptıklarınızı takip edin - ✅ Terminal'den test sonuçlarını takip edin
- ✅ Düzenli olarak commit yapın
- ✅ İlerleyişinizi GitHub'a push edin
İyi çalışmalar! 🎨✨