avatar

React 5

  • ๋ฆฌ์•กํŠธ ๊ณ ์ฐจ ์ปดํฌ๋„ŒํŠธ (React Higher Order Component)

    [์ด ๊ธ€](https://ko.reactjs.org/docs/higher-order-components.html)์ด ํ•œ๊ธ€๋กœ ๋ฒˆ์—ญ์ด ์•ˆ๋˜์žˆ์–ด์„œ ๋Œ€์ถฉ ๋ฒˆ์—ญํ•ด๋ด…๋‹ˆ๋‹ค. # Higher-Order Components ๊ณ ์ฐจ ์ปดํฌ๋„ŒํŠธ (์ดํ•˜ HOC)๋Š” ๋ฆฌ์•กํŠธ์—์„œ ์ปดํฌ๋„ŒํŠธ ๋กœ์ง์„ ์žฌ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ ๊ณ ์˜ค๊ธ‰ ๊ธฐ์ˆ ์ด๋‹ค. HOC๋Š” ๋ฆฌ์•กํŠธ API์˜ ์ผ๋ถ€๋ถ„์€ ์•„๋‹ˆ๋‹ค. ์ด๋Š” ๋ฆฌ์•กํŠธ...

    15๋ถ„
  • ๋ฆฌ๋•์Šค ๊ณต๋ถ€ํ•ด๋ณด๊ธฐ (2) - ๋ฆฌ๋•์Šค์˜ ํƒ„์ƒ, ํ•ต์‹ฌ ๊ฐœ๋… ๊ทธ๋ฆฌ๊ณ  3๊ฐ€์ง€ ์›์น™.

    ## ๋ฆฌ๋•์Šค์˜ ํƒ„์ƒ ๋ฐฐ๊ฒฝ https://redux.js.org/introduction/motivation **์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์‹ฑ๊ธ€ ํŽ˜์ด์ง€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋Œ€ํ•œ ์š”๊ตฌ ์‚ฌํ•ญ์ด ์ ์  ๋ณต์žกํ•ด ์ง์— ๋”ฐ๋ผ์„œ, ์šฐ๋ฆฌ์˜ ์ฝ”๋“œ๋Š” ๊ทธ ์–ด๋А ๋•Œ ๋ณด๋‹ค๋„ ๋” ๋งŽ์ด ์ƒํƒœ๊ด€๋ฆฌ์— ๋Œ€ํ•œ ํ•„์š”์„ฑ์„ ๋А๋ผ๊ณ  ์žˆ๋‹ค.** ์—ฌ๊ธฐ์„œ ๋งํ•˜๋Š” ์ƒํƒœ์—๋Š” ์„œ๋ฒ„ ์‘๋‹ต, ์บ์‹œ๋œ ๋ฐ์ดํ„ฐ ๋ฟ๋งŒ์•„๋‹ˆ๋ผ ์„œ๋ฒ„์— ์•„์ง ์š”...

    9๋ถ„
  • ๋ฆฌ๋•์Šค ๊ณต๋ถ€ํ•ด๋ณด๊ธฐ (1) - ๊ฐœ์š”

    ## ๋ฆฌ๋•์Šค ๊ณต๋ถ€ํ•ด๋ณด๊ธฐ 1 [๋ฆฌ๋•์Šค ๊ณต์‹๋ฌธ์„œ](https://redux.js.org/introduction/getting-started)๋ฅผ ์Šค์Šค๋กœ ๋Œ€์ถฉ ๋ฒˆ์—ญํ•ด๋ณธ ๊ธ€์ž…๋‹ˆ๋‹ค. ๋ฆฌ๋•์Šค๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์•ฑ์„ ์œ„ํ•œ **์˜ˆ์ธก ๊ฐ€๋Šฅํ•œ ์ƒํƒœ ๊ด€๋ฆฌ ์ปจํ…Œ์ด๋„ˆ**๋‹ค. ๋ฆฌ๋•์Šค๋Š” ์ผ๊ด€์„ฑ ์žˆ๊ฒŒ ๋™์ž‘ํ•˜๊ณ , ์„œ๋กœ ๋‹ค๋ฅธ ํ™˜๊ฒฝ (ํด๋ผ์ด์–ธํŠธ, ์„œ๋ฒ„, ๋„ค์ดํ‹ฐ๋ธŒ)์—์„œ ์‹คํ–‰๋˜๋ฉฐ, ํ…Œ์ŠคํŠธํ•˜๊ธฐ ...

    7๋ถ„
  • NextJS 1. Page & Route

    ์š”์ฆ˜ ๋ฆฌ์•กํŠธ๋ฅผ ์“ฐ๋Š” ๋งŽ์€ ํ”„๋กœ์ ํŠธ์—์„œ, SSR์„ ์ง€์›ํ•˜๊ธฐ ์œ„ํ•ด [nextjs](https://nextjs.org/)๋ฅผ ์“ฐ๊ณ  ์žˆ๋‹ค. ์ดˆ๊ธฐ ๋กœ๋”ฉ ์†๋„๋‚˜, SEO ์ง€์› ์ด์Šˆ ๋“ฑ ๋“ฑ ๋•Œ๋ฌธ์— ์•„๋ฌด๋ž˜๋„ SPA๋Š” ์š”์ฆ˜ ํŠธ๋ Œ๋“œ์—์„œ ๋งŽ์ด ๋ฐ€๋ฆฐ ๊ธฐ๋ถ„์ด๋‹ค. ๋ฌผ๋ก  [razzle](https://github.com/jaredpalmer/razzle) ์„ ์“ฐ๊ฑฐ๋‚˜ custom ser...

    8๋ถ„
  • React count down์—์„œ ๋ฐฐ์šด event-emitter ์™€ requestAnimationFrame

    # ๋ฆฌ์•กํŠธ์—์„œ ์นด์šดํŠธ ๋‹ค์šด์„ ๋งŒ๋“ค๋ฉฐ ๋ฐฐ์šด ๊ฒƒ๋“ค ๋ฆฌ์•กํŠธ์—์„œ ์นด์šดํŠธ ๋‹ค์šด์„ ๋งŒ๋“ ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด๋ณด์ž. ๊ฐ€์žฅ ๋จผ์ € ์ƒ๊ฐ๋‚˜๋Š”๋Œ€๋กœ, ๋น ๋ฅด๊ฒŒ ๊ตฌํ˜„ํ•œ๋‹ค๋ฉด ์•„๋ž˜์™€ ๊ฐ™์€ ๋А๋‚Œ์ด ๋  ๊ฒƒ์ด๋‹ค. https://codepen.io/yceffort/pen/BayPyNe ํ•˜์ง€๋งŒ ์ด ์ฝ”๋“œ๋Š” ํ•œ๊ฐ€์ง€ ๋ฌธ์ œ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ## setInterval, setTimeout `setInte...

    6๋ถ„
  • ๋ฆฌ์•กํŠธ ๋ฉด์ ‘ ์งˆ๋ฌธ ๋ชจ์Œ (1)

    [๋ชฉ์ฐจ](/2019/08/13/reactjs-interview-questions/) ```toc tight: true, from-heading: 2 to-heading: 3 ``` ## Core React ### What is React ๋ฆฌ์•กํŠธ๋Š” ์˜คํ”ˆ์†Œ์Šค ํ”„๋ก ํŠธ์—”๋“œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ, ํŠนํžˆ ์‹ฑ๊ธ€ ํŽ˜์ด์ง€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค ๊ตฌ์ถ•์„...

    64๋ถ„
  • React Hooks Api (2)

    ### useReducer ```javascript const [state, dispatch] = useReducer(reducer, initialArg, init); ``` `useState`์˜ ๋Œ€์ฒด ํ•จ์ˆ˜๋‹ค. ๋‹ค์ˆ˜์˜ ํ•˜์œ— ๊ฐ’์„ ๋งŒ๋“œ๋Š” ๋ณต์žกํ•œ ๋กœ์ง, ํ˜น์€ ๋‹ค์Œ state๊ฐ€ ์ด์ „ state์˜ ์˜์กด์ ์ธ ๊ฒฝ์šฐ์— ์“ด๋‹ค. ๋ญ๊ฐ€ ๋ญ”์ง€ ๋ชจ๋ฅด๊ฒ ์œผ๋‹ˆ๊นŒ ์˜ˆ์ œ๋ฅผ ๋ณด์ž. ...

    3๋ถ„
  • React Hooks Api (1)

    # Hooks API Hook์€ react 16.8์—์„œ ์ถ”๊ฐ€๋œ ๊ฐœ๋…์œผ๋กœ, Hook์„ ์‹œ์šฉํ•˜๋ฉด class๋ฅผ ๊ฐ–์„ฑํ•˜์ง€ ์•Š์•„๋„ state๊ด€๋ฆฌ์™€ ๊ฐ™์€ react์˜ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ## ๊ธฐ๋ณธ Hook ### useState ```javascript const [state, setState] = useState(initialState); setStat...

    4๋ถ„