[React] ๋ฆฌ์กํธ
๐ ๋ฆฌ์กํธ(React)
๋ฆฌ์กํธ๋ ์ฌ์ฉ์์๊ฒ ๋ณด์ฌ์ง๋ ์ ์ ์ธํฐํ์ด์ค๋ฅผ ๋ง๋ค ์ ์๊ฒ ํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ.์ ๋๋ค.
๋ฆฌ์กํธ๋ 2013๋ ํ์ด์ค๋ถ์์ ์์๋์ด ํ์ฌ ๋ง์ ์น ์ดํ๋ฆฌ์ผ์ด์ ์ด ๋ฆฌ์กํธ๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๋ค.
๋ฆฌ์กํธ๋ ์ปดํฌ๋ํธ์ ์งํฉ์ฒด๋ก์ ์ ์ ์ธํฐํ์ด์ค๋ฅผ ๋ณด์ฌ์ฃผ๊ณ ์ด๋ฒคํธ๋ฅผ ์ฒ๋ฆฌํฉ๋๋ค.
๐ ๋ฆฌ์กํธ ์ปดํฌ๋ํธ
import React, { Component } from 'react';
/* component */
class LikeButton extends Component {
/* state */
state = {
numnerOfLikes: 0,
};
/* render */
render() {
return <button>
{this.state.numberOfLikes}
</button>;
}
}
export defalut LikeButton;
- state: ์ปดํฌ๋ํธ์ ๋ค์ด์๋ ๋ฐ์ดํฐ
- render: ์ฌ์ฉ์์ ์ด๋ป๊ฒ ํ์ ๋ ์ง ํํ
๋ฆฌ์กํธ๋ ์์ ๊ฐ์ ์ฝ๋์ ํ์์ผ๋ก ๋์๊ฐ๋๋ค.
์ปดํฌ๋ํธ ์์ state
๊ฐ ๋ณ๊ฒฝ์ด ๋๋ฉด render
์ ์ ์ฉ๋์ด ์
๋ฐ์ดํธํ ๋ ์ฌ์ฉ์์๊ฒ ๋ณด์ฌ์ง๋ ๋ด์ฉ์ด ๋ฐ๋๋๋ค.
๋ง์ฝ render
ํจ์ ์์ ์์์์๊ฐ ๋ค์ด์๋ค๋ฉด ์์์์์ render
ํจ์๊ฐ ๋ชจ๋ ์
๋ฐ์ดํธ ๋ฉ๋๋ค.
ํ์ง๋ง ๋ชจ๋ ๋ณ๊ฒฝ ์์๋ค์ด DOM Tree์ ์ ์ฉ๋๋ ๊ฒ์ ์๋๋๋ค.
๋ฆฌ์กํธ์ Virtual Dom Tree๋ ์ด์ ํธ๋ฆฌ์ ๋น๊ตํด ๋ณ๊ฒฝ๋ ์ฌํญ๋ง ๊ตฌ๋ณํ์ฌ Dom Tree์ ์ ์ฉ์ํต๋๋ค.
๐ ๋ฆฌ์กํธ์ ์ฅ์
-
๋ฆฌ์กํธ๋ ์ปดํฌ๋ํธ๋ก ๊ตฌ์ฑ๋์ด ์๊ธฐ ๋๋ฌธ์ ๋ ๋ฆฝ์ ์ด๊ณ ์ฌ์ฌ์ฉ์ฑ์ด ๋๋ค.
-
๋ฆฌ์กํธ์๋
Virtual Dom Tree
๊ฐ ์๋ค. ๋ณ๊ฒฝ์ฌํญ์ดVirtual Dom Tree
์ ์ ์ฉ๋๊ณ ์ด์ ํธ๋ฆฌ์ ๋น๊ตํด ๋ณ๊ฒฝ๋ ์ฌํญ๋ง ๊ตฌ๋ณํ์ฌDom Tree
์ ์ ์ฉ์ํจ๋ค. ๋ชจ๋ ๋ด์ฉ์ด ์ ๋ฐ์ดํธ๋์ง ์๊ณ ๋ณ๊ฒฝ์ฌํญ๋ง ์ ๋ฐ์ดํธ ๋๊ธฐ ๋๋ฌธ์ ๋ถํ์ํ ๋์์ ์ค์์ผ๋ก์จ ์ฑ๋ฅ์ ๋์ผ ์ ์๋ค. -
์์ ๊ฐ์ ๊ณผ์ ์ ๋ฆฌ์กํธ์์ ์ง์ ๋ฐ์ดํฐ๊ฐ ๋ณ๊ฒฝ์ด ๋ ๋ ๋ง๋ค ์ดํ๋ฆฌ์ผ์ด์ ์ ์ฒด๋ฅผ ๋ค์ ๋ ๋๋ง ํ๋ค. ๊ฐ๋ฐ์๊ฐ ๋ค๋ฅธ ์์๋ฅผ ํ๋ํ๋ ์ผ์ผํ ์๋ ํ์ ์์ด ๋ฆฌ์กํธ ์์ฒด์์ ์ ๋ฐ์ดํธ๋ฅผ ํด์ฃผ๊ธฐ ๋๋ฌธ์ ํจ์จ์ฑ์ ์ถ๊ตฌํ ์ ์๋ค.
-
๋ฆฌ์กํธ๋ ๊ธฐ๋ณธ์ ์ผ๋ก
60fps
๋ฅผ ๋ณด์ฅํ๊ธฐ ๋๋ฌธ์ ์ฑ๋ฅ์ด ๋ณด์ฅ๋๋ค.
๐ ์ปดํฌ๋ํธ๋ฅผ ๋ง๋๋ ๋ฐฉ๋ฒ
-
ํด๋์ค
- ์ปดํฌ๋ํธ๋ฅผ ์์ํด์ ๋ง๋ ๋ค.
- ์ปดํฌ๋ํธ๊ฐ ์ฃผ๊ธฐ์ ์ผ๋ก ์ ๋ฐ์ดํธ ๋ ๋ ์ฌ์ฉํ๋ค.
- ๊ด๋ จ๋ ๋ฐ์ดํฐ, ํจ์๊ฐ ๋ฌถ์ด์ ธ ์๋ค.
- state๊ฐ ๋ค์ด์์ด ์ปดํฌ๋ํธ๊ฐ ์ ๋ฐ์ดํธ ๋๋ฉด Renderํจ์๊ฐ ์ ๋ฐ์ดํธ๋๋ค.
class LikeButton extends Component {...}
-
ํจ์
- ์ ๋ฐ์ดํธ๊ฐ ์๊ณ ์ ์ ์ธ ๊ฒฝ์ฐ์ ์ฌ์ฉํ๋ค.
- ํ๊ฐ์ง์ ๊ธฐ๋ฅ์ ์ํํ๋ ๋จ์์ด๋ฉฐ, state๋ lifecycle method๊ฐ ์๋ค. ํ์ง๋ง React 16.8 ๋ฒ์ ๋ถํฐ๋ React Hook์ด ๋์ ๋์ด state, lifecycle method๋ฅผ ์ฌ์ฉํ ์ ์์.
function App() {
return <h1>Hello</h1>;
}
์ถ์ฒ
-
๋๋ฆผ์ฝ๋ฉ
-
์ํ์ฝ๋ฉ
๐ฌ ์ต์ ๋๊ธ