React&Redux&Firebase Cv Sayfası yapma

 Bu ders için react projenizi kurmuş , Firebase config ayarlarını yapmış olmanız gerekmektedir. Bu gereklilikleri yapmadıysanız blogun önceki konularına bakabilirsiniz.

Template olarak : https://themes.3rdwavemedia.com/bootstrap-templates/resume/free-bootstrap4-resume-cv-template-for-developers-pillar/

Bunu kullandım ve bunu reacta göre componentlere ayırdım. Kendi blog sayfamda Cv kısmı olarak kullanmaya karar verdim. Cv kısmını yazacak css bilgim olmadığı için hazır kullandım.

MainCv componentimin görünümü :



Datalarımın bulunduğu fireStore documenim. 
  Ne yaptım ? Cv componentimin fireStore ile personelInfo collectionuma bağladım. componentlerime yollayacağım bilgileri doc olarak isimlendirdim.


 Sayfanın görünüşünde de görebileceğiniz üzere careerSummery ayrı bir component. Componentlerime data iletimini nasıl yapıyorum. fireStoreconnect ile componentimi firestore 'personelInfo ' collectionuma bağladığımda  state olarak firestore.data.personelInfo olarak geldi. İçinden carrier doc unu çıkartım ve props olarak cvSummeriazecarrier componentine ilettim.


  cvSummeriazecarrier componentimde carrier olarak gelen datayı karşıladım. Reactta componentlerin render edilme süreçleri var. Mesala render edildiğinde ilk olarak component geliyor. Ardında firestore bağlanıp stateden veri geliyor. Sonra bu gelen veri dom değişiklikliğe sebebiyet veriyor. React elindeki objelere bakıyor değişiklik olduğunu seziyor ve dom işlemlerine başlıyor. Kısaca bir componente props gönderdiğimde öncelikle gelen propsumun null olacağını hesaplamam ardından objenin dolacağını ve render edileceğini belirtmem gerekiyor. Burada da o işlemleri yaptım.

 Bu şekilde bütün componentleri doldurup devam edebilirim. CvHeader içinde gerekli işlemleri yapalım...

Bu işlemleri yapabilmek için algoritmam :
1.Cv componentinde personelInfo yu bağlamıştık.(header için gerekli veriler infoda), MapStatetoProps un içinde, PersonelInfoda infoyu çek
2. çekmiş olduğun infoyu yeni bir değişkene ata
3.Cv componentimdeki props dan infoyu yakala
4.infoyu Cvheader componentine yolla
5.Cvheader componentinden gelen propsdan infoyu yakala
6.Yakalanış olduğun infoyu null değerine ve dolu gelecek şekilde render et.








İşlemleri tamamladığımızda header componentide veri tabanı ile çalışır hale geldi. Peki yöntem böylemi olmalı. Her bir component için teker teker bu işlemlerimi yapmalıyım ?

Bunu düşünürkün şöyle bir yöntem daha geliştirilebilir. Action yazılır. Action firestore bağlanır reducer tetikler reducerın statelerinde de datalarımızın geleceği alanlar olur. Daha sonra direk state kullanılabilir. 
import { firestoreConnect } from 'react-redux-firebase';
kütüphanesi olmasa aslında direk yapılması gereken işlem bu ama bunu kütüphane bizim yerimize yapıyor.



Yorumlar

Bu blogdaki popüler yayınlar

Laravel & React 1

React ile Kişisel Blog Sayfası Oluşturma 1

Github' a proje atma (Visual Studio Code ile)