๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ’๊ณต๋ถ€/ํ”„๋ฆฌ์˜จ๋ณด๋”ฉ์ฝ”์Šค

[ํ”„๋ฆฌ์˜จ๋ณด๋”ฉ์ฝ”์Šค] 4์ฃผ์ฐจ - ๊ณผ์ œ7

by rindev 2021. 8. 23.

๐Ÿ™‹‍โ™€๏ธ์ž ๊น๋งŒ์š”!

์™œ ๊ณผ์ œ5 ๊ธ€์ด ์—†๋ƒ๋ฉด.. ์ˆœ์„œ๋ฅผ ์ฐฉ๊ฐํ•ด์„œ ์ž˜๋ชป ์ผ๊ธฐ ๋•Œ๋ฌธ์—..!๐Ÿ˜ญ๐Ÿ˜ญ๐Ÿ˜ญ๐Ÿ˜ญ

์ผ๋‹จ ์ง€๊ธˆ์„ ๊ธฐ์ค€์œผ๋กœ (=์ˆ˜์ •๋œ ์ดํ›„)

5๋ฒˆ์งธ ๊ณผ์ œ : ๊ฐœ์ธ - ํ•œ๊ธ€ ์ž์Œ ์นด์šดํŠธ
6๋ฒˆ์งธ ๊ณผ์ œ : ํŒ€ํ”Œ - ์ •๋ ฌ๊ณผ์ œ
7๋ฒˆ์งธ ๊ณผ์ œ : ๊ฐœ์ธ - ํˆฌ๋‘๋ฆฌ์ŠคํŠธ

์ž…๋‹ˆ๋‹น.. 5๋ฒˆ์งธ ๊ณผ์ œ ์–˜๊ธฐ๋„ ์ถ”ํ›„ ์˜ฌ๋ฆด ์˜ˆ์ •..!

 

(5๋ฒˆ์งธ ๊ณผ์ œ ์ถ”๊ฐ€ํ•˜๊ณ  ๊ฐ‘๋‹ˆ๋‹ค๐Ÿฅฐ ๋ฐ”๋กœ ๋ณด๊ธฐ)

 

โœ์•Œ๊ฒŒ๋œ ๊ฒƒ๊ณผ ๋Š๋‚€์ 

 

๐Ÿ”ฅ๊ทธ๋ž˜์„œ ํ•ด๋ณด๋Š” ์ •๋ฆฌ

1. ์ปดํฌ๋„ŒํŠธ ์„ค๊ณ„ ํ—ท๊ฐˆ๋ฆฌ์ง€ ๋ง์ž

  • components ํด๋” ์•ˆ์—๋Š” ์žฌ์‚ฌ์šฉํ•  ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ฃผ๋กœ ๋ชจ์•„์•ผ ํ•œ๋‹ค. (๋ ˆ์ด์•„์›ƒ ๊ธฐ๋ฐ˜x)
  • routes.js์—์„œ import ํ•˜๋Š” ์ปดํฌ๋„ŒํŠธ๋Š” ์›ฌ๋งŒํ•˜๋ฉด components ์•ˆ์— ์žˆ์œผ๋ฉด ์•ˆ๋จ
  • ๋ฐ์ดํ„ฐ๊ฐ€ ๋‹ค๋ฅด๊ณ  UI๊ฐ€ ๊ฐ™์œผ๋ฉด ํ•ญ์ƒ! ์žฌํ™œ์šฉ ํ•  ์ƒ๊ฐ์„ ํ•ด์•ผ ํ•จ

์ด๋Ÿฐ๊ฑฐ!!

 

 

2. ํŽธ๋ฆฌํ•œ antd

Ant Design : ์ค‘๊ตญ์—์„œ ๋งŒ๋“  ์›น/์•ฑ ๋””์ž์ธ ๊ฐœ๋ฐœ์„ ์œ„ํ•œ ํ”„๋ ˆ์ž„์›Œํฌ (ant.design์˜ docs ๋ณด๋Ÿฌ๊ฐ€๊ธฐ)

 

์‚ฌ์šฉํ•˜๊ธฐ

$ npm install antd
import { DatePicker } from 'antd';

ReactDOM.render(<DatePicker />, mountNode);

 

์ด๋ฒˆ์— ์‚ฌ์šฉํ•œ ๊ฒƒ

 

๊ฐœ์ธ์ ์œผ๋กœ DatePicker์—์„œ ์•„์‰ฌ์› ๋˜(์–ด๋ ค์› ๋˜) ๋ถ€๋ถ„์€ ๋‚ ์งœ๋ฅผ ์„ ํƒํ–ˆ์„ ๋•Œ input๋ถ€๋ถ„์„ ๋‚ด ๋งˆ์Œ๋Œ€๋กœ ๋ณ€๊ฒฝํ•˜์ง€ ๋ชปํ•œ ๊ฒƒ..ใ… ใ… 

ํ•ด๋ณด๋ คํ–ˆ๋Š”๋ฐ ๊ฒฐ๊ตญ ๋ชฐ๋ผ์„œ ๋ชปํ–ˆ๋‹ค.. ์ง€์›ํ•˜์ง€ ์•Š๋Š”๊ฑด์ง€ (๊ทผ๋ฐ ์•ˆํ•ด์ค„๋ฆฌ๊ฐ€ ์—†๋‹ค๊ณ  ์ƒ๊ฐ์ค‘)

์‚ฌ์šฉํ•ด๋ณธ ์†Œ๊ฐ์€ ์—„์ฒญ ํŽธํ•˜๋‹ค! ๋””์ž์ธ๋˜ฅ์†.. ์ด์ œ ์šธ์ง€์•Š์•„๋„ ๊ดœ์ฐฎ์•„

๊ทธ๋ฆฌ๊ณ  ์ด๋Ÿฐ ์•„์ด์ฝ˜๋„ ์ง€์›ํ•ด์ฃผ๋‹ˆ ํ•„์š”ํ•  ๋•Œ ํ™œ์šฉํ•ด๋ณด์ž! (https://ant.design/components/icon/)

 

 

3. filter ๋ฉ”์„œ๋“œ

arr.filter(callback(element[, index[, array]])[, thisArg])

filter()๋Š” ์ฃผ์–ด์ง„ ํ•จ์ˆ˜์˜ ํ…Œ์ŠคํŠธ๋ฅผ ํ†ต๊ณผํ•˜๋Š” ๋ชจ๋“  ์š”์†Œ๋ฅผ ๋ชจ์•„ ์ƒˆ ๋ฐฐ์—ด๋กœ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

 

    const removeTodo = (id: number) => {
        setTodoState((prevState) =>
            prevState.filter((todo: Itodo) => todo.id !== id)
        );
    };

๊ทธ๋ž˜์„œ ์„ ํƒํ•œ ์•„์ดํ…œ์„ ์‚ญ์ œํ•  ๋•Œ์—๋Š” ์„ ํƒํ•œ ํ•ด๋‹น id์™€ ์ผ์น˜ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ๋“ค๋งŒ ๋ฐ˜ํ™˜ํ•˜๋ฉด ๋œ๋‹ค.

(์˜ˆ : 1, 2, 3, 4, 5 ์ค‘์—์„œ 2๋ฅผ ์‚ญ์ œํ•˜๊ณ  ์‹ถ์œผ๋ฉด 1, 3, 4, 5๋งŒ ๋ฆฌํ„ด)

 

 

4. typescript์™€ ์นœํ•ด์ง€๊ณ  ์‹ถ๋‹ค

์ฒ˜์Œ ๋ดค์„ ๋•Œ : ๐Ÿค”?

ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ ์“ฐ๋ฉด์„œ ์˜ค๋ฅ˜๊ฐ€ ๊ต‰์žฅํžˆ! ๋งŽ์•˜๊ณ , ๋ญ”๊ฐ€ vscode์—์„œ tsconfig.json์ด๋ž‘ eslintrc๋ž‘ ๊ณ„์† ์˜ค๋ฅ˜๋‚œ๋‹ค๊ณ  ๋– ์„œ... ๊ดด๋กœ์› ๋‹ค.

์ฝ”๋“œ์ƒŒ๋“œ๋ฐ•์Šค์—์„œ๋Š” ์ž˜ ๋˜๋Š”๋ฐ...ใ… ใ…  ์ผ๋‹จ ์ ˆ๋Œ€๊ฒฝ๋กœ๊ฐ€ ์ž˜ ์•ˆ๋œ๊ฑด ์šฐ์„  ๊ธ‰ํ•œ๋Œ€๋กœ ์ƒ๋Œ€๊ฒฝ๋กœ๋กœ import ํ–ˆ๋‹ค.

 

๊ทธ๋ž˜๋„ ์ด๋ฒˆ ๊ณผ์ œ์˜ ๊ฐ€์žฅ ์ข‹์•˜๋˜ ์ ์€ ๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ์ฝ”๋“œ๋ฅผ ๋งŽ์ด ๋ณผ ์ˆ˜ ์žˆ์—ˆ๋˜ ๊ฒƒ! ๊ทธ๋ฆฌ๊ณ  ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ ํ•˜๋‚˜๋„ ๋ชจ๋ฅด๋Š”๋ฐ ๊ทธ๋ƒฅ ๋‚˜ํ•œํ…Œ ๋‹ค ์งœ๋ผ๊ณ ํ–ˆ์œผ๋ฉด ์ƒ์ƒ๋งŒ์œผ๋กœ๋„ ๋”์ฐํ•œ๋ฐ, ๊ธฐ๋ณธ์ฝ”๋“œ๊ฐ€ ์ฃผ์–ด์ง„ ์ƒํƒœ์—์„œ ์‹œ์ž‘ํ•ด์„œ ์กฐ๊ธˆ ๋” ์ˆ˜์›”ํ–ˆ๋˜ ๊ฒƒ ๊ฐ™๋‹ค. ์ด๊ฒŒ ๋ฌด์Šจ ๋ง์ธ์ง€ ํ•ด์„ํ•ด์„œ ๋ณ€ํ˜•ํ•˜๊ฑฐ๋‚˜ ํ™•์žฅํ•˜๋ฉด ๋˜๋‹ˆ๊นŒ..! 

 

ํ‰์†Œ๋Œ€๋กœ ์งฐ๋”๋‹ˆ ์˜ค๋ฅ˜๊ฐ€ ์—„์ฒญ ๋‚˜๋Š”๊ฑธ ๋ณด๋ฉด ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ๋กœ ๊ผผ๊ผผํ•˜๊ฒŒ ๊ฒ€์‚ฌํ–ˆ์„ ๋•Œ ๋ฌธ์ œ๊ฐ€ ๋˜๋Š” ์ฝ”๋”ฉ ์Šต๊ด€์„ ๊ฐ–๊ณ  ์žˆ์—ˆ๋‹ค๋Š”๊ฑฐ๋‹ˆ๊นŒ ์–ผ๋ฅธ... ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ์— ์ ์‘ํ•˜๋Š” ์ˆ˜ ๋ฐ–์—๐Ÿ˜‚

 

 

๐Ÿ‘€์ฐธ๊ณ 

 

๋Œ“๊ธ€