React

Ahmet DENİZ

React Nedir ?
Facebook tarafından geliştirilen kullanıcı arayüzü oluşturmayı kolaylaştiran bir JavaScript kütüphanesidir.
Tarihçe
Facebook 2013 yılında instagram'ı satın aldığında instagram'ın bir web sitesi yoktu. Instagram'a bir web sitesi yapmak için React facebook codebase'inden ayrılarak opensource bir kütüphane olarak yayınlandı.
Kullanılan Yerler

React'in Avantajları
-
Verinin zaman içerisinde değiştiği büyük uygulamaları basit ve hızlı bir şekilde geliştirmeye olanak sağlar.
- Herşeyin Component olması.
-
Saf javascript'e yakın olması
-
Öğrenmenin kolay olması.
Verinin Zaman İçerisinde Değiştiği Uygulamalar


React data her değiştiğinde componentde bizim yerimize F5 yapar.
Peki React bunu nasıl yapıyor ?
React Consepti

Virtual DOM(Document Object Model )
React her bir elemanı javascript objesinde saklar.
Bir değişiklik olduğunda objelerin bulunduğu arrayleri karşılaştırır.
Farklılıkları eski arayüze entegre eder.
Component
Bir web sayfasının en küçük yapı birimidir.
Legolar gibilerdir bir araya gelerek yapıları oluştururlar.
Lifecycle

Hello World
import React from 'react';
import ReactDOM from 'react-dom';
export default class About extends React.Component {
render(){
return(
<div>
Hello World
</div>
)
}
}
ReactDOM.render(<About />, document.getElementById('app'))
React.createElement("div", null , "Hello World")
JSX
Click Me !
import React from 'react';
export default class Click extends React.Component {
constructor(props){
super(props);
this.state = {
clicked: false
}
}
handleClick(){
this.setState({clicked : true})
}
render(){
return(
<div onClick={this.handleClick.bind(this)}>
{this.state.clicked ? 'Clicked!' : 'Click Me'}
</div>
)
}
}
Sayaç
import React from 'react';
export default class Sayac extends React.Component {
constructor(props){
super(props);
this.state = {
sayac : 0
}
}
artir(){
this.setState({sayac : this.state.sayac + 1})
}
render(){
return(
<div className="container">
Sayaca {this.state.sayac} kez tıkladınız.
<button onClick={this.artir.bind(this)}>Artir</button>
</div>
)
}
}
Todo
import React from 'react';
export default class Click extends React.Component {
constructor(props){
super(props);
this.state = {
list:[]
}
}
handleClick(){
var item = this.refs.todo.value;
this.state.list.push(item);
item = [];
this.setState({list:this.state.list})
}
render(){
return(
<div>
<input ref="todo" />
<button onClick={this.handleClick.bind(this)}> Add </button>
<ul>
{
this.state.list.map(function(item, index){
return (<li key={index}>{item}</li>)
})
}
</ul>
</div>
)
}
}
React
By Ahmet Deniz
React
- 165