Yazılımcı'nın Seyir Defteri
@volkansengul
npm install -g create-react-app
create-react-app myApp
cd myApp
npm start
if( user.likes() ) {
if( hasBlue() ) {
removeBlue();
addGrey();
} else {
removeGrey();
addBlue();
}
}
if( this.state.liked ) {
return <blueLike />;
} else {
return <greyLike />;
}
Imperative yaklaşım
Declarative yaklaşım
class Merhaba extends React.Component {
render() {
return (
<div>
Merhaba
</div>
);
}
}
ReactDOM.render(
<Merhaba />,mountNode
);
getDefaultProps | Bileşenin kullanacağı değişmeyen verilerin başlangıcını döndürür |
getInitialState |
Bileşenin kullanacağı değişen verilerin başlangıcını döndürür.
|
componentWillMount | Bileşen gerçek DOM’a bağlanmadan hemen önce bu fonksiyon çağrılır. |
render | Bileşen güncellenirken render fonksiyonu çağrılır. |
componentDidMount | Bileşen gerçek DOM’a bağlandıktan hemen sonra bu fonksiyon çağrılır. |
shouldComponentUpdate | Bileşenin güncellenip güncellenmeyeceğine burada karar verilir. True / False |
componentWillUpdate | Bileşen güncellenmeden hemen önce bu fonksiyon çağrılır. Bileşen güncellenirken render fonksiyonu çağrılır. |
componentDidUpdate | Bileşen güncellendikten hemen sonra bu fonksiyon çağrılır. |
class Merhaba extends React.Component {
render() {
return (
<div>
Merhaba {this.props.isim}
</div>
);
}
}
ReactDOM.render(
<Merhaba isim="Volkan" />,mountNode
);
class Clock extends React.Component {
constructor(props) { super(props);
this.state = {date: new Date()};
}
componentDidMount() {
this.timerID = setInterval(() => this.tick(),
1000);}
componentWillUnmount() { clearInterval(this.timerID); }
tick() {
this.setState({ date: new Date() });
}
render() {
return (<div>It is {this.state.date.toLocaleTimeString()}</div>);
}
}
class MyComponent extends React.Component {
render() {
return React.createElement('div', null, 'Merhaba Dünya');
}
}
ReactDOM.render( React.createElement( MyComponent ),
document.getElementById('root')
);
1
class MyComponent extends React.Component {
render() {
return <div>Merhaba Dünya</div>;
}
}
ReactDOM.render(
<MyComponent />,
document.getElementById('root')
);
<element></element> // doğru
<element/> // doğru
<element> // yanlış
Açılan eleman mutlaka kapatılmalı
Alt elemanlar tek bir eleman içinde sarmalanmalı.
// doğru
(<element>
<element1/>
<element2/>
</element>)
//yanlış
(
<element1/>
<element2/>
)
(<div id="hello">
<h1 className="title">Merhaba Dünya</h1>
</div>)
JSX elemanları HTML attribute barındırabilir.
İstisnalar
class ⇒ className
for ⇒ htmlFor