React component lifecycle
نویسنده: سیروان عفیفی
تاریخ: ۱۳۹۸/۰۷/۱۵ ۸:۵
آدرس: www.dntips.ir
| مطالب | ۳۶۹۴ |
| نویسندگان | ۲۷۶ |
| گروههای مطالب | ۱۰۲۴ |
| نقشههای راه | ۱۱۹ |
| دورهها | ۱۴ |
| اشتراکها | ۱۷۹۱۴ |
render() {
fetch('https://jsonplaceholder.typicode.com/users')
.then(response => response.json())
.then(data => this.setState({ users: data }))
return (
<ul>
{this.state.users.map(user => <li key={user.id}>{user.name}</li>)}
</ul>
);
}
//App.js
import React, { Component } from 'react';
import { Users } from "./Users";
export default class App extends Component {
constructor(props) {
super(props);
this.state = {
toggle: false
};
}
handleChange = () => {
this.setState({ toggle: !this.state.toggle });
}
render() {
return <div className="container text-center">
<div className="row p-2">
<div className="form-check">
<input type="checkbox" className="form-check-input"
checked={this.state.toggle}
onChange={this.handleChange} />
<label className="form-check-label">Toggle</label>
</div>
<div className="row p-2">
{this.state.toggle && <Users />}
</div>
</div>
</div>
}
}
//Users
import React, { Component } from 'react';
export class Users extends Component {
constructor(props) {
super(props);
this.state = {
users: []
}
}
componentDidMount() {
fetch('https://jsonplaceholder.typicode.com/users')
.then(response => response.json())
.then(data => {
this.setState({ users: data });
console.log(data)
})
}
render() {
return (
<div className="bg-info text-white p-2">
{this.state.users &&
<p>{JSON.stringify(this.state.users, null, 2)}</p>
}
</div>
);
}
} import React, { Component } from 'react';
export class Users extends Component {
constructor(props) {
// as before
}
componentDidMount() {
// as before
}
componentDidUpdate() {
console.log("componentDidUpdate Users Component");
}
render() {
// as before
}
} import React, { Component } from 'react';
export class Users extends Component {
constructor(props) {
// as before
}
componentDidMount() {
// as before
}
componentDidUpdate() {
console.log("componentDidUpdate Users Component");
}
componentWillUnmount() {
console.log("componentWillUnmount Users Component");
}
render() {
// as before
}
} import React, { useState, useEffect } from 'react';
export const Users = () => {
const [users, setUsers] = useState([]);
useEffect(() => {
console.log("Same as componentDidMount")
fetch('https://jsonplaceholder.typicode.com/users')
.then(response => response.json())
.then(data => {
setUsers({ users: data });
})
}, []);
useEffect(() => {
console.log("Same as componentDidUpdate")
});
useEffect(() => {
return () => {
console.log("Same as componentWillUnmount")
}
}, []);
return (
<div className="bg-info text-white p-2">
{users &&
<p>{JSON.stringify(users, null, 2)}</p>
}
</div>
);
}