JS SPA์‹์œผ๋กœ ์ด๋ฒคํŠธ ํ•จ์ˆ˜ ๋งŒ๋“ค๊ธฐ
728x90

Today, What I learned?

๋ฐ”๋‹๋ผ JS๋กœ SPA๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ํ”„๋กœ์ ํŠธ ์ง„ํ–‰ ์ค‘!..

๋‹ด๋‹น ํŽ˜์ด์ง€๋ฅผ ๋งˆํฌ์—… ํ•˜๊ณ , ๋ฒ„ํŠผ์„ ํด๋ฆญํ–ˆ์„ ๋•Œ ์ด๋ฒคํŠธ ์ผ์–ด๋‚˜๋Š” ๊ฒƒ์„ SPA ๋ฐฉ์‹์œผ๋กœ

์–ด๋–ป๊ฒŒ ๊ตฌํ˜„ํ•˜๋Š”๊ฐ€.. ๐Ÿค” ์— ๋Œ€ํ•ด์„œ ์ข€ ํ—ค๋งธ๋˜ ์ง€๋ผ ์˜ค๋Š˜์€ ์ด๊ฒƒ์— ๋Œ€ํ•ด ์ •๋ฆฌํ•ด๋ณด๋ ค ํ•œ๋‹ค.

 

 

Cannot read properties of null (reading 'addEventListner')

์˜ค๋Š˜ ๋งŒ๋‚œ ์—๋Ÿฌ.

์ด ์ „์—๋„ ํ•œ ๋ฒˆ์€ ๋งŒ๋‚œ ์ ์ด ์žˆ๋˜ ๊ฒƒ ๊ฐ™์€ ๋…€์„..

์‚ฌ์ง„์€ ์˜ˆ์‹œ

 

์ผ๋‹จ ์ € ์—๋Ÿฌ๋Š” ์ด๋Ÿฐ ์ด์œ ๋กœ ๋ฐœ์ƒํ•œ๋‹ค.

  • html์ด ๋กœ๋“œ๋˜๊ธฐ ์ „์— script๋ฅผ ๋จผ์ € ๋ถˆ๋Ÿฌ์™”๋‹ค.
  • ์•„์ง html์ด ๋กœ๋“œ๋˜๊ธฐ ์ „์ด๊ธฐ ๋•Œ๋ฌธ์— addEventListener๋ฅผ ๋ถ€์—ฌํ•  DOM์„ ์ฐพ์ง€ ๋ชปํ–ˆ๋‹ค.
  • ๊ณ ๋กœ null ๊ฐ’์ด ๋œฌ๋‹ค.

 

์ด ๊ฒฝ์šฐ๋Š” ๋ณดํ†ต script ํƒœ๊ทธ๋ฅผ html ๋ฌธ์„œ ํ•˜๋‹จ์— ๋“ฑ๋กํ•˜๋Š” ๊ฒƒ์œผ๋กœ ํ•ด๊ฒฐ์ด ๋œ๋‹ค.

 

ํ•˜์ง€๋งŒ ๋‚˜์˜ ๊ฒฝ์šฐ์—๋Š” ์ข€ ๊ณค๋ž€ํ•œ ๋ถ€๋ถ„์ด ์žˆ์—ˆ๋‹ค.

  • SPA๋กœ ๊ตฌํ˜„๋œ ํ”„๋กœ์ ํŠธ์ด๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฒคํŠธ ๋ฆฌ์Šค๋„ˆ ํ•จ์ˆ˜๋ฅผ ์“ฐ๋Š” ๊ฒƒ์ด ๋ถˆ๊ฐ€๋Šฅํ•ด ๋ณด์ž„ (์—ฌ๋Ÿฌ ์‹œ๋„ ๊ฒฐ๊ณผ..)
  • main.js์—์„œ ๋ชจ๋“  ์ด๋ฒคํŠธ ํ•จ์ˆ˜๋ฅผ ํ•ธ๋“ค๋งํ•˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ณดํ†ต์˜ ํ•ด๊ฒฐ ๋ฐฉ์‹๊ณผ๋Š” ๋‹ค๋ฅด๊ฒŒ ํ•ด๊ฒฐํ•˜๊ณ  ์‹ถ์—ˆ์Œ.

 

ํ•ด๊ฒฐ!

๊ทธ๋ž˜์„œ ํƒœ๊ทธ์— ์ง์ ‘ ์ด๋ฒคํŠธ๋ฅผ ๋ถ€์—ฌํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ํ•ด๊ฒฐ..

 

์ด๋Ÿฐ ๋ฐฉ์‹์œผ๋กœ ์ด๋ฒคํŠธ๋ฅผ ์ง์ ‘ ๋งค๊ฐœ๋ณ€์ˆ˜์— ๋„ฃ์–ด์ฃผ๋ฉด, ์•„๋ž˜์ฒ˜๋Ÿผ addEventListner ์—†์ด๋„ ํ•จ์ˆ˜๋ฅผ export ํ•  ์ˆ˜ ์žˆ๋‹ค.

์ฝ”๋“œ์˜ ์ผ๋ถ€๋ถ„..

์ง€๊ธˆ๋ณด๋‹ˆ ๋ณ€์ˆ˜ ํ•˜๋‚˜๊ฐ€ ์นด๋ฉœ์ผ€์ด์Šค๊ฐ€ ์•„๋‹ˆ๋„ค ์ˆ˜์ •ํ•ด์•ผ์ง€.. 

 

์ด์ œ main.js์—์„œ window ๊ฐ์ฒด์— ๋ณ„๋„์˜ ํ•ธ๋“ค๋Ÿฌ๋ฅผ ๋ถ€์—ฌํ•ด์ฃผ๋ฉด ์ ์šฉ ์™„.

 

 

 

์‹œ๊ฐ„์ด ์–ด๋””๋กœ ์‚ฌ๋ผ์กŒ๋Š”์ง€ ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ.. ๋‚ด์ผ๋„ ํŒŒ์ดํŒ….. ๐Ÿฅน

 

 

 

728x90