React.js Giriş - I

kondanta

Katılımcı Üye
29 Tem 2017
910
0
CNCF

Merhaba arkadaşlar, bu seride sizlere birazcık React.js ve Redux'dan bahsetmek istiyorum.
Çoğunuzun duyduğunu varsayaraktan, react nedir diye uzatmayacağım ama kısaca bahsetmem
gerekirse; React, bir ecmascript(java scriptin havalı ismi) kütüphanesidir. Kullanıcılarına
daha güzel ve one way connection esasında ön yüz geliştirme olanağı sunar.
React aslında state based bir kütüphanedir. Yani, her verinin bir durumu vardır.
Bu state olayının analojisini, içecek otomatı gibi düşünebilrsiniz aslında. Otomatın başlangıç durumu para beklemesi, para atıldıktan sornaki durum içeceğin seçilmesi, içeceği verdikten sonra tekrar en baştaki durumu olan para beklemeye geri dönmesi gibi.

Redux'a daha sonralarda detaylı değinecek olsam bile, kısaca bahsetmem gerekirse; redux bize
yukarıda bahsi geçen durumlara global bir şekilde ulaşabilmemizi sağlar. Tüm componentleri birbirine bağlayarak durum aktarmaktansa, redux'ın bize sağladığı store* içerisinden bu durumları çekmek daha basit ve kullanışlı. Redux için bilinmesi gereken belli bir terminoloji mevcut. Action generators, dispatchers, store bunlardan bazıları.

Uyarı: Hali hazırda bilgisayarınızda nodejs ve "YARN" olduğunu varsayarak devam edeceğim
Yarn yerine npm de kullanabilirsiniz lakin ben yarn tercih edeceğim. Ben bilgisayarıma kurmam
uğraşamam diyenler için, https://reactjs.org/docs/try-react.html üzerinden codepen
yada sandbox'ı kullanabilirsiniz.


Bu kadar bilgilendirmeden sonra, en baştan başlayalım. Bu kısım bilgisayara kurulum yapacak kişiler için geçerli olacak.
I-a )
Kod:
$ npm i -g create-react-app
$ create-react-app projeIsmi
I-b ) create-react-app bize gerekli kurulum işlemini yapacaktır. webpack kurulumu da buna dahil.

II ) Tamamdır, bu noktadan sonra yazacak herkes için anlatıma geçeyim. Proje yaratırldıktan sonra
Kod:
-projeIsmı
|- public
|- src
| App.js
...
Daha komplike bir folder yapısı görmek istiyorsanız:
VDElMn.png

gibi bir folder yapısı olacak. İçerisine girip şunları yazalım;
Kod:
class App extends React.Component {
  render(){
    return <div className="App"> Hello World! </div>
  }
}

export default App;
ekleyelim.
Kod:
$ yarn start
Komutunu çalıştırdıktan sonra anasayfamızda "Hello World!" yazısını göreceğiz. Şimdi burada açıklamak istediğim ilk kısım, render fonksiyonu. React içerisinde 2 tip component çeşidi mevcut. Birincisi class, yukarıda gösterdiğim, ikincisi ise fonksiyon tipi componentler. Sıra onlara da gelecek lakin, class tipi component yaratırken render fonksiyonunu eklememiz şart. Classın renderlanması, yani browser üzerinde gözükmesi için bu şart.

Kod:
export const App = () => {
  return <div className="App"> Hello World! </div>;
}
Bu kod parçası yukarıda bahsi geçen fonksiyon olarak yazılan component şekli.

Bunların yanında React içerisinde en önemli konseptlerden birisi de "Lifecycle mehods"
Yani sayfanın hayatı ile ilgili olan metodlar.
  • componentWillMount
  • componentDidMount
  • componentWillRecieveProps
gibi. İsimlerden de anlayacağınız üzere, sayfanın durumu ile ilgili değişimlerde ki davranışlarını belirlemek için kullandığımız built-in fonksiyonlar bunlar.
Örneğin, sayfa yüklenmeden önce arkada bir şeylerin hallolmasını istiyorsak, 3. methodu kullanıyoruz. Bu method çağırıldığında sayfa daha yüklenme esnasında oluyor, şu loading ekranı gibi düşünebilrsiniz. Daha detaylı bilgi için -> https://reactjs.org/docs/react-component.html

Konunun devamında redux ve kullanımı hakkında bilgilendirme yapmayı planlıyorum. Tabi ki, react içerisinde router gibi çok sık kullanılan kütüphanelerde mevcut. "react-router", "react-router-dom" gibi.
Belki içimden gelirse, sıfırdan alıp basit bir uygulama yapmayı da anlatabilirim reactjs ile. Şuan frontend denildiğinde en popüler kütüphane react olduğu için, bilinmesinde fayda olacağı kanısındayım.


 
Son düzenleme:
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.