Giriş
Component bir "named export" olduğu için şöyle yaparız.
Eğer Typescript kullanıyorsak IProp ve IState isimli iki arayüz tanımlamamız gerekir.
Örnek
Şöyle yaparız.
Açıklaması şöyle. Eğer bunu yaparsak sonsuz döngü oluşur.
componentWillMount metodu
Bu metod yerine componentDidMount() metodunu terchi etmek lazım.
Örnek
Şöyle yaparız.
Şöyle yaparız.
Örnek ver
render metodu
Açıklaması şöyle. Bu metod içinde setState() çağrısı yapılamaz.
State göstermek için şöyle yaparız
HTML nesnesi göstermek için şöyle yaparız.
updater + callback kullanarak şöyle yaparız.
updater + callback kullanarak şöyle yaparız.
Elimizde şöyle bir component olsun.
Açıklaması şöyle.
Component'i export etmek için şöyle yaparız.
Component bir "named export" olduğu için şöyle yaparız.
import React, { Component } from "react";
Bu durumda şöyle yaparız.class Parent extends Component {
...
};
constructor - propsEğer Typescript kullanıyorsak IProp ve IState isimli iki arayüz tanımlamamız gerekir.
Örnek
Şöyle yaparız.
export default class Editor extends Component {
constructor(props) {
super(props);
this.state = { field: "Some Initial Text" };
}
...
}
Örnek
props'taki nesneye erişmek için şöyle yaparız.class PeopleView extends Component {
constructor(props) {
super(props);
const { people } = props;
const sortedPeople = sortBy(people, 'birthday');
}
...
}
componentDidUpdate metoduAçıklaması şöyle. Eğer bunu yaparsak sonsuz döngü oluşur.
You should never do setState in componentDidUpdate, since setState triggers that exact method again.
componentWillMount metodu
Bu metod yerine componentDidMount() metodunu terchi etmek lazım.
Örnek
Şöyle yaparız.
componentWillMount() {
axios.get('http://rallycoding.herokuapp.com/api/music_albums').then(response =>
this.setState({
items: response.data
}))
.catch((error) => {
console.error(error);
})
}
componentWillReceiveProps metoduŞöyle yaparız.
componentWillReceiveProps(nextProps){
if(nextProps.currentUserDetails.id && !nextProps.onCurrentUserDetailsInit){
this.props.getCurrentUserDetails(nextProps.currentUserDetails.id)
}
}
componentWillUnmount metoduÖrnek ver
render metodu
Açıklaması şöyle. Bu metod içinde setState() çağrısı yapılamaz.
ÖrnekThe render() function should be pure, meaning that it does not modify component state, it returns the same result each time it’s invoked, and it does not directly interact with the browser.
State göstermek için şöyle yaparız
render() {
return (
<div>
{this.state.text}
</div>
)
}
ÖrnekHTML nesnesi göstermek için şöyle yaparız.
import React from 'react';
class Example extends React.Component {
constructor(props, context) {
super(props, context);
// initial state
this.state = {clicked: false};
}
render() {
return (
<button onClick={() => {this.setState({clicked: true});}}>
</button>
);
}
}
setState metodu
Asenkron çalışır. Açıklaması şöyle.setState() çağrısından hemen sonra state değişmemiş olabilir. Açıklaması şöyle.Think of setState() as a request rather than an immediate command to update the component. For better perceived performance, React may delay it, and then update several components in a single pass. React does not guarantee that the state changes are applied immediately.
Açıklaması şöyle.Calls to setState are asynchronous - don’t rely on this.state to reflect the new value immediately after calling setState. Pass an updater function instead of an object if you need to compute values based on the current state (see below for details).
ÖrneksetState() does not always immediately update the component. It may batch or defer the update until later. This makes reading this.state right after calling setState() a potential pitfall. Instead, use componentDidUpdate or a setState callback (setState(updater, callback)), either of which are guaranteed to fire after the update has been applied.
updater + callback kullanarak şöyle yaparız.
this.setState({
query: params
},(updatedState) => {
console.log("updated state:", updatedState)
});
Örnekupdater + callback kullanarak şöyle yaparız.
onDragEnd={(event) =>
this.setState({playerMarkerPositionFuture: event.nativeEvent.coordinate},
() => {alert("hello")}
)}
ÖrnekElimizde şöyle bir component olsun.
class Test extends React.Component {
constructor(props) {
super(props);
this.state = {
number:0,
};
}
...
}
Şöyle yaparızthis.setState({
number: num
}, () => console.log('now the point chosen is: ' + this.state.number));
shouldComponentUpdate metoduAçıklaması şöyle.
Pure components were introduced in React 15.3. React.Component and React.PureComponent differ in implementing the shouldComponentUpdate() lifecycle method. The shouldComponentUpdate() method decides the re-rendering of the component by returning a boolean. In React.Component, it returns true by default. But in pure components, shouldComponentUpdate() compares if there are any changes in state or props to re-render the component.Diğer
Component'i export etmek için şöyle yaparız.
import ReactDOM from "react-dom";
import React, { Component } from "react";
class Child extends Component {
...
}
export default Child;
Kullanmak için şöyle yaparız.import ReactDOM from "react-dom";
import React, { Component } from "react";
import Child from "./child.js";
class Parent extends Component {
...
};
Hiç yorum yok:
Yorum Gönder