Posts
Q&A
\'์ ๋ณ์๋ฅผ ๊ฐ์ด ์ฐ๋ฉด ์ ๋๋์?
// ์ฒซ ๋ฒ์งธ ๋ฐฉ๋ฒ(ES5 ๋ฐฉ์) var ํ๊ธธ๋ = '๋'; console.log("'" + ํ๊ธธ๋ + "๋ ๊ท์ฝ๋ค'"); // ๋ ๋ฒ์งธ ๋ฐฉ๋ฒ(ES6+ ๋ฐฉ์) const ํ๊ธธ๋ = '๋'; console.log(`'${ํ๊ธธ๋}๋ ๊ท์ฝ๋ค'`); ์ด๋ ๊ฒ ์ฝ๋ ์ง์๋ฉด ๋ฉ๋๋ค. ๋ณ์ ์ด๋ฆ์ผ์ง๋ผ๋ ""๋ก ๊ฐ์ธ๋ฒ๋ฆฌ๋ฉด ๋ฌธ์๋ก ์ธ์ํด๋ฒ๋ฆฌ๊ธฐ ๋๋ฌธ์๋ณ์๋ ํญ์ ๋ณ์ ๋ณธ๋ ์ด๋ฆ ์์ฒด๋ก ์จ์ค์ผํฉ๋๋ค. ์๋๋ฉด ES6+ ๋ฐฉ์์ธ ํ ํ๋ฆฟ ๋ฆฌํฐ๋ด๋ก ์์ฑํด์ฃผ์๋ฉด ์ฝ์ต๋๋ค.
- 0
- 2
- 299
Q&A
์ฒซ๋ฒ์งธ for๋ฌธ์์ i๊ฐ 5๊ฐ 5๋ฒ ์ถ๋ ฅ ๋๋ ์ด์
for(var index in arr) { console.log(arr[index]()); } ์ ์ฝ๋๋ฅผ ์คํ ์ํค๋ฉด ์ฐจ๋ก๋๋ก arr[0]() ~ arr[4]() ์ด๋ฐ์์ผ๋ก ํจ์๋ฅผ ์คํ์ํค๊ฒ ๋ฉ๋๋ค.ํ์ง๋ง ๊ฐ ๋ฐฐ์ด์ ๋ด๊ธด ํจ์๋ ์ ์ญ๋ณ์ i๋ฅผ ์ฐธ์กฐํ๊ณ i๋ฅผ ๋ฆฌํดํ๊ณ ์์ฃ . ๊ทธ๋์ ์ต์ข ์ ์ผ๋ก 5๊น์ง ์ฆ๊ฐ๋์ ์ญ๋ณ์ i๊ฐ 5๋ฒ ์ถ๋ ฅ๋๋ ๊ฒ๋๋ค.์ฆ, arr[4]๊ฐ 5๋ฅผ ๋ด๊ณ ์๋๊ฒ ์๋๋ผ 0~4 ์ธ๋ฑ์ค ๋ฐฐ์ด ์ ๋ถ ์ ์ญ๋ณ์ i๋ฅผ ์ฐธ์กฐํ๊ณ ์๋ ๊ฒ๋๋ค.์กฐ๊ธ ์๋ชป ์ดํดํ์ ๊ฒ ๊ฐ์์ ์ ๊ฐ ๋ค๋ฅธ ์ง๋ฌธ๊ธ์ ๋ต๊ธ ๋ฌ์๋์ ๋ถ๋ถ ๋ค์ ๋์ด์ฌ๋ ค ์ฌ๊ธฐ์ ๋จ๊น๋๋ค. ์ฐ์ ์ด๋ฐ ๋ฌธ์ ๋ var ์ ๋ฌธ์ ์ ์ด๋ผ ๋ณผ ์ ์์ต๋๋ค.es6(es2015)๋ถํฐ๋ ์ด๋ฐ ๋ฌธ์ ๋๋ฌธ์ var ๋์ const, let ์ ์ฐ์๊ณ ์งํฅํ๊ณ ์์ต๋๋ค. for (var i = 0; i ์ฐ์ ์์ ๋ฐฉ์์ผ๋ก for ๋ฌธ ์์ var i๋ฅผ ์ ์ธํ๊ณ ๋ฐ๊นฅ์์ console.log(i) ๋ฅผ ํธ์ถํ๋ฉด ์ด์ํ๊ฒ์ค๋ฅ ์์ด ํธ์ถ๋๋ ๊ฑธ ๋ณผ ์ ์์ต๋๋ค.๊ทธ ์ด์ ๋ var ์ ์ธ ๋ฐฉ์์ด block scope๊ฐ ์๋๋ผ function ๋จ์ scope์ด๊ธฐ ๋๋ฌธ์for๋ฌธ์ด ๋๋ฌ์์๋ ์ฌ์ ํ ์ ์ญ๋ณ์๋ก์จ ์ ํจํ๊ธฐ ๋๋ฌธ์ ๋๋ค.์ ์ญ๋ณ์๋ก ์ ์ธ๋์ด ๋ฒ๋ฆฌ๋ ๋ถ๋ถ์ด ์ด๋ค ๋ฌธ์ ๋ฅผ ์ผ์ผํค๋์ง ์๋ ์ฝ๋๋ฅผ ๋ณด๋ฉด์ ์ดํด๋ณด์ฃ . * ์์์์์ ์ฝ๋ var arr = []; for (var i = 0; i โ arr[0] = function () { return i; }; arr[1] = function () { return i; }; ... arr[4] = function () { return i; }; ์ด๋ฐ์์ผ๋ก ๋ฐฐ์ด๋ด ๊ฐ ์ธ๋ฑ์ค์ ํ ๋น๋๊ฒ ์ฃ . ํ์ง๋ง return ๊ฐ์ ํ ๋น๋ ๋์ i ๊ฐ์ด์๋๋ผ ์ ์ญ๋ณ์ i ๋ฅผ ์ฐธ์กฐํ๊ณ ์๊ธฐ ๋๋ฌธ์ ์ด ํจ์๋ค์ ํธ์ถํ๋ฉด ๊ณ์ํด์์ ์ญ๋ณ์ i ์ ์ต์ข ๊ฐ์ธ 5๋ฅผ ๋ถ๋ฌ์ค๊ฒ ๋๋ ๊ฒ๋๋ค.์ฒซ๋ฒ์งธ for ๋ฌธ์์ ๋ฃจํ๊ฐ ๋๋๋ฉด์ ์ ์ญ๋ณ์ i์ ๊ฐ์ด ์ด๋ฏธ 5๊ฐ ๋์์ผ๋๊น์. * ํด๋ก์ ๋ฅผ ์ฌ์ฉํ๋ฉด ์ ์์๋ ํ๋ ์ด์ for (var i = 0; i ํด๋ก์ (closure)๋ฅผ ์ฌ์ฉํ์ฌ ์ ๋ฌ์ธ์(argument)๋ก i ๊ฐ์ ์ฃผ๋ฉด ๋ฐฐ์ด์ ๊ฐ ํจ์๊ฐ ํ ๋น๋ ๋ ๊ทธ ๋์ i ๊ฐ์ ๋งค๊ฐ๋ณ์(parameter)๋ก ๋ฐ๊ธฐ ๋๋ฌธ์ ์ง์ญ๋ณ์๋ฅผ ์ฌ์ฉํ ๊ฒ ๊ฐ์ ํจ๊ณผ๊ฐ ๋๊ฒ๋๋ ๊ฒ์ด์ฃ .
- 0
- 3
- 430
Q&A
name์ด ๋ญ์ฃ
const o1 = { val1: 1, val2: 2, val3: 3 } for (const name in o1) { console.log(o1[name]); // val1, val2, val3 } for ... in ๋ฌธ์์ ์์ ์ ์ธ๋ถ๋ name์ผ๋ก ํ๋ value๋ก ์จ๋๋ ๊ฐ๋ฐํ์๋ ๋ถ ๋ง์์ด๊ณ ๊ฐ์ฒด์์ ๋ฌธ์์ด๋ก ํค๊ฐ ์ง์ ๋ ๋ชจ๋ ์ด๊ฑฐ ๊ฐ๋ฅํ ์์ฑ์ ๋ํด ๋ฐ๋ณตํด์ค๋๋ค.for ... in ๋ฌธ์์ in this ๋ผ๊ณ this์์ ๋ฐ๋ณตํ๋ค๊ณ ์ ์ธํ๊ธฐ ๋๋ฌธ์ this๊ฐ๊ฐ๋ฅดํค๋ ๊ฐ์ฒด์์ ํค๊ฐ์ ๋ถ๋ฌ์ค๊ณ ์๋๊ฒ๋๋ค.
- 0
- 1
- 250
Q&A
์น์ 15. ํด๋ก์ ์์ฉ ์์ ์ง๋ฌธ
์ด๋ฏธ ์ค๋์ง๋์ ์ ๋ต๋ณ์ด ์ ์๋ฏธํ ์ง๋ ๋ชจ๋ฅด๊ฒ ์ง๋ง ์์ ๋ด์ฉ๊ณผ๋ ์ข ์ฐจ์ด๊ฐ ์์ต๋๋ค.์์ฑ์๋ถ๊ป์ ์์ฑํ์ ์ฝ๋๋ arr[i] ์ ํจ์๋ฅผ ํ ๋นํ๊ณ i๋ฅผ ์ ๋ฌ์ธ์(parameter)๋ก ์ฃผ๊ณ ๋ฐ๋ก ํ ๋นํ ํจ์๋ฅผ ์คํํ ์ฝ๋์ ๋๋ค. for (var i = 0; i ๊ฒฐ๊ตญ ๋ฐฐ์ด์ ์ง์ ๊ฐ์ ํ ๋นํ ์ด ์ฝ๋๋ ๊ฐ์ ์ ์ฃ . ์์์์๋ ๋ฐฐ์ด์ ํจ์๋ฅผ ๋ด์ ์ฌ์ฉํ ๋์ ์ํฉ์ ์๊ฐํ๊ณ ์๋๋ฐ,arr[i] ์ ํจ์๋ฅผ ํ ๋น ํ ํ ํจ์๋ฅผ ํธ์ถํ์์ ๋ 5๋ง ๊ณ์ ๋ฅผ ๋ฆฌํดํ๋์์๋ฐ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ฃ . ๊ทธ๋ฆฌ๊ณ ๊ทธ ํด๊ฒฐ์ฑ ์ผ๋ก Closure๋ฅผ ์ฌ์ฉํ ๊ฒ์ ๋๋ค. ๋ํ, ์ด๊ฑด var๋ฅผ ์ฌ์ฉํ ๋์ ๋ฌธ์ ์ ์ด๊ธฐ๋ ํฉ๋๋ค. ๋ฌธ์ ๋ฐ์์ ์ด์ ๋ ๋น์ ๋ฐฐ์ด์ ํ ๋น๋ ํจ์๊ฐ ์ ์ญ๋ณ์ i๋ฅผ ๊ณ์ํด์ ์ฐธ์กฐํ๊ณ ์๊ธฐ ๋๋ฌธ์ ๋๋ค.var๋ function scope์ด๊ธฐ ๋๋ฌธ์ for์์ ์ ์ธํ๋ฉด ์ ์ญ๋ณ์๋ก์จ ๊ธฐ๋ฅํด๋ฒ๋ฆฌ์ฃ . arr[0] = function () { return i; // ์ ์ญ ๋ณ์ i๋ฅผ ๊ณ์ํด์ ์ฐธ์กฐ. } ... arr[1] = function () { return i; }
- 0
- 1
- 275
Q&A
์ฒซ๋ฒ์งธ ์์๋ฌธ์์ ๊ฐ์ด ์ 5๊ฐ 5๋ฒ ๋ฐ๋ณต๋๋์ง ๊ถ๊ธํฉ๋๋ค.
์ฐ์ ์ด๋ฐ ๋ฌธ์ ๋ var ์ ๋ฌธ์ ์ ์ด๋ผ ๋ณผ ์ ์์ต๋๋ค.es6(es2015)๋ถํฐ๋ ์ด๋ฐ ๋ฌธ์ ๋๋ฌธ์ var ๋์ const, let ์ ์ฐ์๊ณ ์งํฅํ๊ณ ์์ต๋๋ค. for (var i = 0; i ์ฐ์ ์์ ๋ฐฉ์์ผ๋ก for ๋ฌธ ์์ var i๋ฅผ ์ ์ธํ๊ณ ๋ฐ๊นฅ์์ console.log(i) ๋ฅผ ํธ์ถํ๋ฉด ์ด์ํ๊ฒ์ค๋ฅ ์์ด ํธ์ถ๋๋ ๊ฑธ ๋ณผ ์ ์์ต๋๋ค.๊ทธ ์ด์ ๋ var ์ ์ธ ๋ฐฉ์์ด block scope๊ฐ ์๋๋ผ function ๋จ์ scope์ด๊ธฐ ๋๋ฌธ์for๋ฌธ์ด ๋๋ฌ์์๋ ์ฌ์ ํ ์ ์ญ๋ณ์๋ก์จ ์ ํจํ๊ธฐ ๋๋ฌธ์ ๋๋ค.์ ์ญ๋ณ์๋ก ์ ์ธ๋์ด ๋ฒ๋ฆฌ๋ ๋ถ๋ถ์ด ์ด๋ค ๋ฌธ์ ๋ฅผ ์ผ์ผํค๋์ง ์๋ ์ฝ๋๋ฅผ ๋ณด๋ฉด์ ์ดํด๋ณด์ฃ . * ์์์์์ ์ฝ๋ var arr = []; for (var i = 0; i โ arr[0] = function () { return i; }; arr[1] = function () { return i; }; ... arr[4] = function () { return i; }; ์ด๋ฐ์์ผ๋ก ๋ฐฐ์ด๋ด ๊ฐ ์ธ๋ฑ์ค์ ํ ๋น๋๊ฒ ์ฃ . ํ์ง๋ง return ๊ฐ์ ํ ๋น๋ ๋์ i ๊ฐ์ด์๋๋ผ ์ ์ญ๋ณ์ i ๋ฅผ ์ฐธ์กฐํ๊ณ ์๊ธฐ ๋๋ฌธ์ ์ด ํจ์๋ค์ ํธ์ถํ๋ฉด ๊ณ์ํด์์ ์ญ๋ณ์ i ์ ์ต์ข ๊ฐ์ธ 5๋ฅผ ๋ถ๋ฌ์ค๊ฒ ๋๋ ๊ฒ๋๋ค.์ฒซ๋ฒ์งธ for ๋ฌธ์์ ๋ฃจํ๊ฐ ๋๋๋ฉด์ ์ ์ญ๋ณ์ i์ ๊ฐ์ด ์ด๋ฏธ 5๊ฐ ๋์์ผ๋๊น์. * ํด๋ก์ ๋ฅผ ์ฌ์ฉํ๋ฉด ์ ์์๋ ํ๋ ์ด์ for (var i = 0; i ํด๋ก์ (closure)๋ฅผ ์ฌ์ฉํ์ฌ ์ ๋ฌ์ธ์(argument)๋ก i ๊ฐ์ ์ฃผ๋ฉด ๋ฐฐ์ด์ ๊ฐ ํจ์๊ฐ ํ ๋น๋ ๋ ๊ทธ ๋์ i ๊ฐ์ ๋งค๊ฐ๋ณ์(parameter)๋ก ๋ฐ๊ธฐ ๋๋ฌธ์ ์ง์ญ๋ณ์๋ฅผ ์ฌ์ฉํ ๊ฒ ๊ฐ์ ํจ๊ณผ๊ฐ ๋๊ฒ๋๋ ๊ฒ์ด์ฃ .
- 0
- 3
- 614
Q&A
ContextAPI ๋ฌธ์
์๋ ํ์ธ์. ํจ์๋ฅผ ํธ์ถํ๊ณ ์ถ๋ค๋ ๋ด์ฉ์ ์ ๊ฐ ์๋ชป๋ดค๋ค์. ๋ค๋ฅธ ์ปดํฌ๋ํธ์ ์๋ ํจ์๋ export ํ J์์ importํ์ฌ ์ฌ์ฉํ๋ฉด ๋์ง ์๋๊ฐ์?ํน์ ํจ์๋ฅผ ์ฌ์ฌ์ฉํ๊ณ ์ถ์ผ์ ๊ฒฝ์ฐ์๋ ๋ฐ๋ก ์ฝ๋๋ฅผ ๋ถ๋ฆฌ์์ผ์ export ํ A, C, J์์๋ถ๋ฆฌ์ํจ ํจ์๋ฅผ importํด์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ด ์๊ณ , redux saga๋ฅผ ์ฌ์ฉํ์ฌ ํน์ ์ก์ ์ ํธ์ถํ์ ๋saga middle ware์์ ๊ทธ ํจ์๋ฅผ Call ํด์ฃผ๋ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค. ์๋ฌด๋๋ ์ ๋ ๋ฐฐ์ฐ๋ ์ ์ฅ์ด๋ ์ ํํ ๋ต๋ณ์ ๋๋ฆฌ๊ธด ํ๋๋ค์ ใ ใ ํจ์ ๊ตฌ์กฐ์ ๋ฐ๋ผ ์ต์ ํํด์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ด ์์ ์ ์์ผ๋ ํธ์ถํ์๊ณ ์ถ์ํจ์ ๊ตฌ์กฐ๋ฅผ ์ฝ๋๋ก ๊ฐ์ด ์ฌ๋ ค๋์๋ฉด ๊ฐ์ฌ๋๊ป์ ๋ ์ข์ ๋ต๋ณ ์ฃผ์ค๊ฑฐ๋ผ ์๊ฐํฉ๋๋ค.
- 1
- 6
- 241
Q&A
ContextAPI ๋ฌธ์
๊ฐ์ฌ๋์ด ๋ต๋ณํด์ฃผ์๊ฒ ์ง๋ง, ๊ฒฐ๋ก ๋ถํฐ ๋งํ์๋ฉด Context API๋ก๋ ์ ์ญ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํ ์ ์์ต๋๋ค.์์ ์ปดํฌ๋ํธ์ธ App ์ปดํฌ๋ํธ์์ Provider๋ก ๋ด๋ ค์ฃผ๋ฉด A๋ C, J์์๋ ์ฌ์ฉํ ์ ์์ฃ .๊ทธ๋ ์ง๋ง ๊ฒฐ๊ตญ Redux๋ฅผ ๋์ค์ ์ฌ์ฉ ํ ์์ ์ด๋ผ๋ฉด ์ง๊ธ๋ถํฐ Redux์ ์ต์ํด์ง๋๊ฒ ๋ ๋์ ์ ํ์ด๋์๊ฐ์ด ๋ญ๋๋ค. ๊ฐ๋จํ ์ดํ๋ฆฌ์ผ์ด์ ์๋ Context API๋ ๊ด์ฐฎ์ ์ ํ์ด์ง๋ง ๋ณต์กํ ์ดํ๋ฆฌ์ผ์ด์ ์๋Redux๋ก ์์ฑํ๋ ํธ์ด ๋ฏธ๋ค์จ์ด๋ ์ ์ฉํ ์ ์๊ณ ๋ ์ฝ๊ฒ ๊ด๋ฆฌํ ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค.์ ๋ ๊ทธ๋ ๊ณ ๋ฐฐ์ฐ๋ ์ ์ฅ์ด๋ ๋น์ฅ์ ํฌ๊ฒ ์๊ด์์ง๋ง Redux๋ฅผ ์ฌ์ฉํ๋ฉด ์กฐ๊ฑด์ ๋ฐ๋ผ ์ก์ ์๋ฌด์ํ ์๋ ๋ค๋ฅธ ์ก์ ์ ๋ฐ์์ํฌ ์๋ ์๊ตฌ์. ๊ทธ๋์ ์ ๋ Context API๋ ์ด๋ฐ๊ฒ ์๊ตฌ๋ํ๊ณ Context API๋ก ๋ช๋ฒ ์ฝ๋ ์์ฑํด๋ณด๊ณ ๊ทธ๋ฅ ๋์ด๊ฐ๊ณ ์ดํ์ Redux๋ฅผ ์ฌ์ฉํ๋ฉด์ ์ต์ํด์ ธ๋ณด๋ ค๊ณ ํ๊ณ ์์ต๋๋ค.
- 1
- 6
- 241
Q&A
immer ํจํค์ง ์์ด createReducerํจ์ ์์ฑ ๋ฌธ์
์์ง js๋ฅผ ์ ๋ถ ์๋ ๊ฒ์ด ์๋๋ผ proxy ์ฌ์ฉ๋ฒ์ ๋ชฐ๋ผ ์ฐจ์ฐจ ๊ณต๋ถํด๊ฐ๋ฉฐ ํ๋ฒ ๊ตฌํํด๋ด์ผ๊ฒ ๋ค์.์ ๊ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๊ธ ํจ์๋ฅผ ๊ตฌํํ ์ ์์์ง ๋ชจ๋ฅด๊ฒ ๋ค์ ใ ใ ๋ต๋ณ ๊ฐ์ฌ๋๋ฆฝ๋๋ค. ์๋ ค์ฃผ์ ๋งํฌ ์ฐธ๊ณ ํด๋ณด๊ฒ ์ต๋๋ค!
- 1
- 2
- 330
Q&A
useEffect ์ค์ ํ์ฉ๋ฒ2 ๋ถ๋ถ ์ง๋ฌธ
๋ต๋ณ ๊ฐ์ฌํฉ๋๋ค.์ผ๋จ ์๋ ค์ฃผ์ ์ฝ๋๋ก๋ ํ ์คํธ ํด๋ณด๋ ์ง๋ฌธ ๋๋ฆฐ ๋ ๋ถ๋ถ ๋ชจ๋ ์ ์ ์๋ํฉ๋๋ค.๊ถ๊ธํ ์ ์ด ์๋ ์ฝ๋๋ก๋ eventListner๋ฅผ ํด์ ์ ๋ ํผ๋ฐ์ค๊ฐ ๊ฐ์ ์ ์ ํด์ ๋๋ ๊ฒ์ผ๋ก ๋ณด์ด๋๋ฐ,useEffect ์์ด ์๋ Component ํจ์์์ Ref๊ฐ์ฒด๋ฅผ ์์ ์์ ์ ๋๋ก ํด์ ๋์ง ์๋ ๊ฒ ๊ฐ์ต๋๋ค.์ด ๋ถ๋ถ์ ์ ๊ทธ๋ฐ์ง ์ ์ ์์๊น์? ์๋ ์ฝ๋์์ useEffect๋ด์์ Ref๊ฐ์ฒด๋ฅผ ์์ ํ๋ Component ํจ์์์ ์์ ํ๋ ๋ ํผ๋ฐ์ค๋ ๊ฐ์ผ๋ํด์ ๋์ด์ผ ํจ์ด ์ ์ ์๋๊ฐ์?์ ๊ฐ ์๊ฐ ํ๊ธฐ๋ก๋ Concurrent mode ๋ถ๋ถ์ด ์คํ์ ์ธ ๊ธฐ๋ฅ์ด๋ผ๋ฐ๋ก ์ค์นํด์ importํ์ง ์์ผ๋ฉด Concurrent๋ก ์๋ ํ์ง ์์ ๊ฒ ๊ฐ์๋ฐ..ํน์ ์ด ๋ถ๋ถ์ด Concurrent mode์ ์ฐ๊ด์ด ์๋๊ฑด๊ฐ์? ์ธํฐ๋ท ๊ฐ์ ๋ณด๋ค ์ฑ ์ ๋จผ์ ๊ตฌ๋งคํด์ ๋ฐ๋ผ๊ฐ๋ค๊ฐ ๊ฐ์๋ด ํ๋ก์ ํธ๊ฐ ํ์ด๋์ ์ธ๊ฐ๋ ์ง๊ธ ๋ฃ๊ณ ์๋๋ฐ๋ฃ๋ค๋ณด๋ ํ๋ก์ ํธ๊ฐ ์๋๋ผ ์ง๋ฌธ & ๋ต๋ณ ๋ถ๋ถ์ด ์ด ๊ฐ์๋ฅผ ๊ตฌ๋งคํ๋ ํ๋์ ๋ฉ๋ฆฌํธ๋ ์๊ฐ์ด ๋๋ค์.์ ๋ ์ง๋ฌธ ๋๋ฆด๋๋ง๋ค ์ด๋ป๊ฒ ์ง๋ฌธ ๋๋ฆฌ๋ฉด ์๋๋ฅผ ์ ์ดํดํ์๊ณ ๋ต๋ณํด ์ฃผ์ค ์ ์์๊น๋ ๊ณ ๋ฏผํ๋ฉด์ ์ง๋ฌธํฉ๋๋ค๋ง, ์ฝ๋ฉ์์๋ ๊ทธ ์ง๋ฌธ๋ ์ฐธ ์ด๋ ต๋จ ์๊ฐ์ด ๋ญ๋๋ค. ๋ชจํธํ ์ค๋ช ์๋ ๋ถ๊ตฌํ๊ณ ์ง๋ฌธ ์๋๋ฅผ ์ ํํ๊ฒ ํ์ ํด์ฃผ์๊ณ ์ ํํ ๋ต๋ณ ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. import { useEffect, useRef } from "react"; export default function MyComponent({ onClick }) { const onClickRef = useRef(); useEffect(() => { onClickRef.current = onClick; }); useEffect(() => { window.addEventListener('click', onClickRef.current); return () => window.removeEventListener('click', onClickRef.current); }); return ( div>ํ ์คํธ/div> ); }
- 1
- 3
- 743
Q&A
CSS ์์ฑ ๋ฐฉ๋ฒ์ ๊ดํด์
์ข์ ๋ต๋ณ ๊ฐ์ฌํฉ๋๋ค.
- 1
- 4
- 299




