์ง๊ธ๊น์ง React
๋ฅผ class
์ปดํฌ๋ํธ๋ฅผ ์ฌ์ฉํด ์์๋๋ฐ ์๋ฒ์ฃผ์ Hooks
์ ๋ฐฐ์ฐ๊ฒ ๋์ด ์ด๋ค ๊ฐ๋
์ธ์ง ์ ๋ฆฌํ ๊ฒธ ๊ธ์ ์จ๋ณผ๋ ค๊ณ ํฉ๋๋ค.
๊ณต์ ๋ฌธ์๋ฅผ ๋ด๋ณด๋ฉด ์๋์ ๊ฐ์ด ์ ํ ์์ต๋๋ค.
Hook์ props, state, context, refs, ๊ทธ๋ฆฌ๊ณ lifecycle์ ๊ฐ์ React ๊ฐ๋ ์ ์ข ๋ ์ง๊ด์ ์ธ API๋ฅผ ์ ๊ณตํฉ๋๋ค. ๋ํ Hook์ ์ด ๊ฐ๋ ๋ค์ ์ฎ๊ธฐ ์ํด ์๋ก์ด ๊ฐ๋ ฅํ ๋ฐฉ๋ฒ์ ์ ๊ณตํฉ๋๋ค.
componentDidMount() {
applyFirstLogic()
applySecondLogic()
}
// ๊ด์ฌ์ฌ์ ๋ถ๋ฆฌ - Data fetching
useEffect(() => {
applyFirstLogic()
}, [])
// ๊ด์ฌ์ฌ์ ๋ถ๋ฆฌ - Attach event listener
useEffect(() => {
applySecondLogic()
}, [])
State
๊ฐ ์ฐธ์กฐํ๋ ๊ฐ์ ํญ์ ์ต์ โ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์ฅํ๊ธฐ ํ๋ฌ(๋ฒ๊ทธ ๋ฐ์)Dan
์์ ํ๋ก์ฐ ๋ฒํผ์ ๋๋ฅด๊ณ Sophie
๋ก ์ด๋์ ํด๋ Dan
์ด ํ๋ก์ฐ๊ฐ ๋๋ ๋ฐ๋ฉด ํด๋์คํ ๋ฒํผ์ Sophie
์์ ๋๋ฅด๊ณ Dan
์ด ํ๋ก์ฐ๊ฐ ๋๋ ๋ฒ๊ทธ๊ฐ ๋ฐ์ํ๋ค.import React, { Component } from 'react';
export class Haha extends Component {
render() {
return (
<div>
<h1>ํ์ด</h1>
</div>
);
}
}
export default Haha;
import React from 'react';
function Hm() {
return <h1>ํ์ด</h1>;
}
export default Hm;
์ฌ๊ธฐ์์ ํฐ ์ฐจ์ด๋ฅผ ๋ณด์ธ๋ค Class
ํ์ constructor() super()
๋ฅผ ์ ์ธํด ๊ทธ ์์ state
๊ฐ์ ์ ์ธํด ์ฃผ์ง๋ง Hooks
์์ const ์์ ๋ฐฐ์ด๋ก state
์ setState
๋ฅผ ์ ์ธํ๊ณ useState(์ด๊ธฐ๊ฐ)
์ ๋ฃ์ด์ค๋๋ค.
import React, { Component } from 'react';
export class Haha extends Component {
constructor() {
super();
this.state = {
count: 0,
};
}
render() {
return <h1>ํ์ด</h1>;
}
}
export default Haha;
import React, { useState } from 'react';
function Hm() {
const [count, setcount] = useState(0);
return <h1>ํ์ด</h1>;
}
export default Hm;
Hooks
์ ํธ์ถํด์ผ ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ฐ๋ณต๋ฌธ, ์กฐ๊ฑด๋ฌธ, ์ค์ฒฉ๋ ํจ์ ๋ด์์ Hooks
์ ์คํ ํ๋ฉด ์๋ฉ๋๋ค.import React, { useState } from "react"
function Hooks(props) {
if (!props.isExist) {
const [state, setState] = useState(); // Error!
}
const [state2, setState2] = useState(); // Error!
}
// react๊ฐ ์ฌ๋ฌ ํ
๋ค์ ๊ตฌ๋ถํ ์ ์๋ ์ ์ผํ ์ ๋ณด๋ ํ
์ด ์ฌ์ฉ๋ ์์ ๋ฟ์ด๊ธฐ ๋๋ฌธ.
ํจ์ํ ์ปดํฌ๋ํธ์ธ Hooks
์์๋ componentDidMount
, componentDidUpdate
๊ฐ์ LifeCycle
์ ์ธ์๊ฐ ์๋ค
๊ทธ๋์ ํ์ํ๊ฒ useEffect
์ด๋ค.
useEffect(() => {}, []) //
์์์ฒ๋ผ ์ธ์๋ก ์ฝ๋ฐฑ ํจ์์ ์์กด์ฑ ๋ฐฐ์ด์ ๊ฐ์ง๊ณ ์์ต๋๋ค.
์์กด์ฑ ๋ฐฐ์ด์ ๋ฐฐ์ด ์์ ๋ด๊ธด ๊ฐ๋ค์ ์ถ์ ํ๊ณ ๊ทธ๋ ๋ง๋ค ์
๋ฐ์ดํธ ํ ์ ์๊ฒ ํด์ค๋๋ค.