React Bootcamp
11.09.2021
@yunusdemirpolt
● 40+ consultants
● Cloud/DevOps, Microservices, Test
● Kloians working remotely
● Quarterly Summits
● Offices in London & İstanbul & Netherlands
● Customers from TR, US, UK, EU, TZ, UAE, RUS
Kloia in-a-nutshell:
Solutions in
DevOps/DevSecOps
Cloud/Kubernetes
Microservices
Test Automation
Within four nominated AWS Partners
globally for Modernization Projects
Several ongoing modernization projects
Customers from:
USA
UK Germany
Finland Austria
Turkey
Malta Tanzania
UAE Netherlands
Switzerland
Denmark
Russia
Ben Kimim?
Yunus Demirpolat
Kod yazar araştırmacı
Front End Consultant @kloia
Gezgin
REACT
React nedir?
● UI oluşturmak için Facebook tarafından yaratılmış esnek ve verimli bir
JavaScript kütüphanesidir.
● Component olarak adlandırdığımız küçük ve izole parçalar sayesinde
karmaşık arayüzler oluşturmamıza olanak sağlar.
● En temel özelliği olarak bileşenlerin birleşimini gösterebiliriz. Farklı kişilerin
yazdığı farklı bileşenler birlikte mükemmel çalışırlar.*
● One-way data flow tercih eder.*
ReactDOM nedir?
● React ve DOM arasında ki bağlantıyı sağlayan bir kütüphanedir.*
● Çoğunlukla React’i render etme aşamasında kullanılır.
● Beş tane metodu vardır.
● render()
● hdyrate()
● unmountComponentAtNode()
● findDOMNode()
● createPortal()
ReactDOM.render()
Components
Component nedir?
● Küçük, izole ve tekrar kullanılabilir UI parçasıdır.
● React Element döndüren bir sınıf veya fonksiyondur.
● İsteğe bağlı olarak input(props) alırlar.
● Orkestramızın başlıca üyesidir.
Component Hiyerarşisi
Class Component
Functional Component
Element vs Component
● Component isimleri, Componentleri HTML
elementlerinden ayırabilmek için Pascal
Case olarak verilmelidir.
● React, Pascal Case olarak verilen
isimlendirmeleri Component olarak algılar.
Properties
State
Props vs State
● Düz JavaScript nesnesidir
● Component’e iletilir
● Değişiklik olursa render’ı tetikler
● Kullanıldığı Component içerisinde
değişikliğe uğratılmaz*
● Düz JavaScript nesnesidir
● Component’te yönetilir
● Değişiklik olursa render’ı tetikler
● Bulunduğu Component içerisinde
değişikliğe uğratılabilir*
JSX
JSX nedir?
● JavaScript için oluşturulmuş bir syntax extensiondır.
● React içersinde HTML yazmayı veya eklemeyi çok daha kolay hale getirir.
● JSX, HTML elementlerini, createElement() ya da appendChild() metodlarını kullanmadan
DOM’a eklememizi sağlar.
● XSS(cross-site-scripting) ataklarını önler.
● JavaScript ifadelerini JSX içerisinde { } içerisinde kullandırır.
● Type-safe olmasından dolayı çoğu hatalar derleme esnasında yakalanabilir.
React.createElement(compone
nt, props, ...children)
SETUP
git —version
Git MAC’de default olarak yüklüdür. Yüklü değil ise yukarıda ki komutu
çalıştırmanız yeterli bu yüklemeniz için bir ekran açacaktır.
https://nodejs.org/en/downlo
ad/
NodeJS için bu adrese gidip size uygun platformu seçip indirebilirsiniz.
https://github.com/yunusd/b
ootcamp-vanilla
Buradan boilerplate’i indirebilir sonrasın da uygulamayı yazmaya
başlayabilirsiniz.
Folder Structure
package.json
npm install && npm run start
Handson
● Güncel Döviz kurlarını static olarak göstermelisiniz.
● Bunu bir tablo üzerinde yapmalısınız.
● Olabildiğince küçük parçalara ayrılmış Component’ler oluşturmalısınız.
● Tasarım önemli değildir.
REVIEW
Lifecycles
Bir Component’in aşamaları
● Initialization
● Mounting
● Updating
● Unmounting
constructor()
render()
componentDidMount()
componentDidUpdate()
componentDidUnmount()
Component Lifecycle metodları
FORM
Controlled Components
Higher-order Component
Higher-order Component(HOC) nedir?
● Component businessını tekrar kullanmak için gelişmiş bir teknik olarak
tanımlar Facebook.
● Parametre olarak Component alır ve yeni bir Component döndürür.
● HOC, side-effects barındırmayan saf bir fonksiyondur.
● Cross-Cutting Concerns için biçilmiş kaftandır.
Peki, HOC neyin
dermanı?
HOC sonrası
Pure Component
Pure Component nedir?
● Bir Component’tir :)
● State yada props için shallow karşılaştırma yapar.
● State veya props’da değişiklik görmezse re-render yapmaz.
● Bazı durumlar da daha performanslıdır.
React.PureComponent
React Memo
React memo nedir?
● Higher-order Component’tir :)
● Props için shallow karşılaştırma yapar.
● Props’da değişiklik görmezse re-render yapmaz.
● Bazı durumlar da daha performanslıdır.
React.memo()
H00KS
Hooks nedir?
● React state ve lifecycle özelliklerini fonksiyonel component’ler de
kullanmamıza olanak sağlayan fonksiyonlardır.
● Class Component’ler de kullanılmaz.
● useState(), useEffect() gibi built-in hooklar vardır.
● Custom hook’da oluşturulabilir.
State Hook
Effect Hook
useMemo()
Custom Hook
Handson
● Not uygulaması yazacağız.
● Not oluşturabilmeli, listeleyebilmeli ve silebilmeliyiz.
● Tasarım önemli değildir.
● Süre: 2 saat
REVIEW
Neler öğrendik?
● React
● Props, State
● Components, JSX
● HOCs
● Pure Component, React.memo()
● Hooks
Dinlediğiniz için teşekkürler.
33 Queen St, London EC4R
1AP, United Kingdom
blog.kloia.com @kloia_com
AND Binası 10-12, 34752
Kozyatagi/Istanbul, Turkey
kloia.com
kloia is a solution provider that
moves you onto the new-era in
DevOps, Cloud and architecture.
Kabelweg 57 1014 BA,
Amsterdam/Netherlands

React Bootcamp Day 1 - Yunus Demirpolat

Editor's Notes

  • #26 JSX aslında React.createElement için bir syntatic sugardan ibaret gördüğün gibi. Bu iki kod parçacığı da aynı çıktığı verecek. JSX’in faydalarını sanırım direkt olarak anlamışsınızdır. Her bir element için bu şekilde bir kod yazsaydık sanırım kimse React kullanmazdı diyebilirim :)
  • #27 JSX aslında React.createElement için bir syntatic sugardan ibaret gördüğün gibi. Bu iki kod parçacığı da aynı çıktığı verecek. JSX’in faydalarını sanırım direkt olarak anlamışsınızdır. Her bir element için bu şekilde bir kod yazsaydık sanırım kimse React kullanmazdı diyebilirim :)
  • #28 JSX aslında React.createElement için bir syntatic sugardan ibaret gördüğün gibi. Bu iki kod parçacığı da aynı çıktığı verecek. JSX’in faydalarını sanırım direkt olarak anlamışsınızdır. Her bir element için bu şekilde bir kod yazsaydık sanırım kimse React kullanmazdı diyebilirim :)