μ΄μ κΈμμ λΌμ΄νμ¬μ΄ν΄μ λν΄ μμ± νλ€
μ¬μ΄ν΄μ΄ μ΄λ»κ² λμκ°λμ§ μμ§ μ΅μνμ§ μκΈ°μ
ν λμ νμΈμ΄ κ°λ₯ν ν΄λμ€νμΌλ‘ μμ±μ νλ€
μ€λμ ν¨μ μ»΄ν¬λνΈμμ λΌμ΄νμ¬μ΄ν΄μ μμ보μ
ν΄λμ€ μ»΄ν¬λνΈμμ λΌμ΄νμ¬μ΄ν΄μ λ©μλ λμ
ν¨μ μ»΄ν¬λνΈμμ μ°λ ν μ μκ² ν΄μ£Όλ ν¨μκ° λ°λ‘ ν
μ΄λ€
(Hookμ class μμμλ λμX λμ class μμ΄ Reactλ₯Ό μ¬μ©ν μ μκ² ν΄μ£Όλ κ²)
const [state, setState] = useState(initialState);
κΈ°λ³Έ νν
useEffect(effect, [, deps]);
κ°λ¨ν μ¬μ© μμ
μλ μ½λλ ν΄λμ€ μ»΄ν¬λνΈμΈλ°
μ΅μ΄ λ λλ§ μμλ countλ₯Ό νμνκ³ μΆκ³ ,
μ
λ°μ΄νΈλ λμλ countλ₯Ό κ°±μ νκ³ μΆμΌλ©΄ λ λ©μλλ₯Ό λ€ μ¬μ©ν΄μΌ νλ€.
class Example extends Component {
constructor(props) {
super(props);
this.state = {
count: 0
};
}
componentDidMount() {
document.title = `You clicked ${this.state.count} times`;
}
componentDidUpdate() {
document.title = `You clicked ${this.state.count} times`;
}
render() {
return (
<div>
<p>You clicked {this.state.count} times</p>
<button onClick={() => this.setState({ count: this.state.count + 1 })}>
Click Me
</button>
</div>
);
}
}class Example extends Component {
constructor(props) {
super(props);
this.state = {
count: 0
};
}
componentDidMount() {
document.title = `You clicked ${this.state.count} times`;
}
componentDidUpdate() {
document.title = `You clicked ${this.state.count} times`;
}
render() {
return (
<div>
<p>You clicked {this.state.count} times</p>
<button onClick={() => this.setState({ count: this.state.count + 1 })}>
Click Me
</button>
</div>
);
}
}
νμ§λ§! useEffectλ₯Ό μ¬μ©νλ©΄?
import React, { useState, useEffect } from "react";
const Example = () => {
const [count, setCount] = useState(0);
useEffect(() => {
document.title = `You clicked ${count} times`;
});
return (
<div>
<p>You clicked {count} times</p>
<button onClick={() => setCount(count + 1)}>Click Me</button>
</div>
);
};
export default Example;
useEffectλ₯Ό μ¬μ©νλ©΄ μμ μ μννλ μ½λλ₯Ό μ€λ³΅ν νμκ° μλ€