๋ชฉ๋ก๐Ÿ’™ React (30)

๐Ÿค ์€์ง€log ๐Ÿค

[REACT] e.stopPropagation( )

์šฐ๋ฆฌ๊ฐ€ ๋งˆ์šฐ์Šค๋กœ ์–ด๋– ํ•œ ํƒœ๊ทธ(div, ul, li, a ๋“ฑ)๋ฅผ ํด๋ฆญํ–ˆ์„ ๊ฒฝ์šฐ ๋งŽ์€ ๋ถ„๋“ค์ด ํ•ด๋‹น ํƒœ๊ทธ๋งŒ ํด๋ฆญ์ด ๋˜์—ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค. ํ•˜์ง€๋งŒ ํ•ด๋‹น ํƒœ๊ทธ๋งŒ์ด ํด๋ฆญ ์ด๋ฒคํŠธ๋ฅผ ๊ฐ์ง€ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ํƒœ๊ทธ๋ฅผ ๊ฐ์‹ธ๊ณ  ์žˆ๋Š” ๋ถ€๋ชจ ํƒœ๊ทธ๋“ค๋„ ํด๋ฆญ ์ด๋ฒคํŠธ๋ฅผ ์ธ์‹ํ•˜๊ณ  ๋ฐ˜์‘ํ•˜๊ฒŒ ๋œ๋‹ค. ์ด๊ฒƒ์„ ๋ฒ„๋ธ”์—…(Bubble Up) ๋˜๋Š” ๋ฒ„๋ธ”๋ง(Bubbling)์ด๋ผ๊ณ  ํ•œ๋‹ค. ์ด๋Ÿฌํ•œ ๋ฒ„๋ธ”๋ง ๋˜๋Š” ๋ฒ„๋ธ”์—…์„ ๋ง‰๋Š” ๊ฒƒ์ด stopPropagation์ด๋ผ๊ณ  ๋ณด๋ฉด ๋œ๋‹ค. ์ƒ์œ„์š”์†Œ๋กœ ํ•ด๋‹น ์ด๋ฒคํŠธ๋ฅผ ์ „๋‹ฌํ•˜์ง€ ์•Š๊ณ  ์ž์‹ ๋งŒ ์ด๋ฒคํŠธ๋ฅผ ๊ฐ์ง€ํ•˜๋„๋ก ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด stopPropagation ์ด๋‹ค. ( Result ํด๋ฆญ โœ…) ์ด ์ฝ”๋“œ๋ฅผ ๋ณด๋ฉด ๋‹จ์ง€ .last-el ๋งŒ ํด๋ฆญํ–ˆ์„ ๋ฟ์ธ๋ฐ ๋ถ€๋ชจ ์—˜๋ฆฌ๋จผํŠธ์—๊ฒŒ๋„ ์ด๋ฒคํŠธ๊ฐ€ ์ „ํŒŒ ๋จ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค. ์ด๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด e...

๐Ÿ’™ React 2024. 1. 18. 15:06
[REACT] beforeunload ํŽ˜์ด์ง€ ๋‚˜๊ฐˆ๋•Œ / ์ƒˆ๋กœ๊ณ ์นจ ํ• ๋•Œ alert ๋„์šฐ๊ธฐ

beforeunload ์ด๋ฒคํŠธ๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์ผ๋ฐ˜์ ์œผ๋กœ ํŽ˜์ด์ง€๋ฅผ ๋‹ซ๊ฑฐ๋‚˜ ์ƒˆ๋กœ๊ณ ์นจํ•  ๋•Œ, ๋ธŒ๋ผ์šฐ์ €๋ฅผ ๋‹ซ์„ ๋•Œ, ์ฃผ์†Œ ํ‘œ์‹œ์ค„์— ๋‹ค๋ฅธ URL์„ ์ž…๋ ฅํ•˜๊ฑฐ๋‚˜ ๋งํฌ๋ฅผ ํด๋ฆญํ•  ๋•Œ ๋ฐœ์ƒํ•˜๋ฉฐ, ํŽ˜์ด์ง€๋ฅผ ๋‹ซ๊ธฐ ์ „์— ์–ด๋– ํ•œ ์กฐ์น˜๋ฅผ ์ทจํ•  ์ˆ˜ ์žˆ๊ฒŒ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ฃผ๋กœ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ์ €์žฅํ•  ๊ฒƒ์ธ์ง€ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•˜๊ฑฐ๋‚˜, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์‚ฌ์šฉ ์ค‘์ธ ๋ฆฌ์†Œ์Šค๋ฅผ ์ •๋ฆฌํ•˜๋Š” ๋“ฑ์˜ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ• ๋•Œ ํ™œ์šฉ๋ฉ๋‹ˆ๋‹ค. ๐Ÿ”† React ์—์„œ ์‚ฌ์šฉํ•˜๊ธฐ useEffect(() => { const handleBeforeUnload = (event) => { event.preventDefault(); event.returnValue = ''; // ๋”์ด์ƒ ์ง€์›๋˜์ง€ ์•Š๋Š” ์†์„ฑ ์ด๋ผ๊ณ  ํ•œ๋‹ค. ์ž‘์„ฑํ•˜์ง€ ์•Š์•„๋„ ๋ฌด๋ฐฉ }; window.addEventListener('b..

๐Ÿ’™ React 2023. 11. 13. 16:27
[REACT] ํ”„๋ก ํŠธ์—”๋“œ ๊ธฐ์ˆ ๋ฉด์ ‘ ๊ฐœ๋… ์ •๋ฆฌ

๐Ÿ”† React : ๋ฆฌ์•กํŠธ๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ํ•˜๋‚˜๋กœ์„œ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋งŒ๋“ค๊ธฐ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ์›น ํ”„๋ ˆ์ž„ ์›Œํฌ ์ด๋‹ค. ๐Ÿ–‡๏ธ React์˜ ์›๋ฆฌ, ํŠน์ง•, ์žฅ๋‹จ์  : ๋ฆฌ์•กํŠธ๋Š” ๋ฐ์ดํ„ฐ์˜ ํ๋ฆ„์ด ํ•œ๋ฐฉํ–ฅ์œผ๋กœ๋งŒ ํ๋ฅด๋Š” ๋‹จ๋ฐฉํ–ฅ ๋ฐ์ดํ„ฐ ํ๋ฆ„์„ ๊ฐ€์ง€๊ณ ์žˆ๋‹ค. UI๋ฅผ ์—ฌ๋Ÿฌ ์ปดํฌ๋„ŒํŠธ๋กœ ์ชผ๊ฐœ์„œ ๋งŒ๋“ ๋‹ค. ์ „์ฒด ์ฝ”๋“œ๋ฅผ ํŒŒ์•…ํ•˜๊ธฐ ์‰ฌ์šฐ๋ฉฐ ์œ ์ง€๋ณด์ˆ˜ ๋ฐ ๊ด€๋ฆฌ๊ฐ€ ์šฉ์ดํ•˜๊ณ , ์žฌ์‚ฌ์šฉ์„ฑ์ด ๋†’๋‹ค. ๋ฆฌ์•กํŠธ๋ฅผ ์ด์šฉํ•˜๋ฉด ๋™์ ์ธ UI๋ฅผ ์‰ฝ๊ฒŒ ๋งŒ๋“ค์ˆ˜ ์žˆ๋‹ค. ๐Ÿ–‡๏ธ Javascript + XML ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์— HTML ํƒœ๊ทธ๋ฅผ ๋ผ์–น์€ ๋ฌธ๋ฒ• HTML ํƒœ๊ทธ ์•ˆ์—์„  ์ค‘๊ด„ํ˜ธ {}๋ฅผ ์‚ฌ์šฉํ•ด์„œ JS๋ฅผ ์“ธ ์ˆ˜ ์žˆ๋‹ค. const apple = "์‚ฌ๊ณผ" const title = {apple} ๋“œ์‹ค๋ถ„? ๐Ÿ–‡๏ธ Component ํ™”๋ฉด์„ ์ด๋ฃจ๋Š” '์š”์†Œ'๋กœ ์—ฌ๋Ÿฌ ๊ณณ์—์„œ ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅ..

๐Ÿ’™ React 2023. 11. 2. 15:58
[REACT] NodeJS ๋กœ ๋งŒ๋“  API๋ฅผ ์ด์šฉํ•ด CRUD ๊ตฌํ˜„ํ•˜๊ธฐ

React๋กœ ๋งŒ๋“  ํ”„๋ก ํŠธ์—์„œ, axios๋ฅผ ํ†ตํ•ด nodeJS๋กœ ๋งŒ๋“  api๋ฅผ ์š”์ฒญํ•˜์—ฌ crud ๋ฅผ ๊ตฌํ˜„ํ•ด๋ณด๋ ค๊ณ  ํ•œ๋‹ค. openAPI๋ฅผ ํ†ตํ•ด ์—ฐ์Šตํ•ด๋ณด๋ ค๊ณ  ํ–ˆ๋Š”๋ฐ ์ด๊ฒƒ์ €๊ฒƒ ๋‹คํ•ด๋ณด๊ธฐ์—๋Š” ํ•œ๊ณ„๊ฐ€ ์žˆ์–ด์„œ ,, api๋ฅผ ๋งŒ๋“ค์–ด๋ณด๊ธฐ๋กœ ํ•˜์˜€๊ณ  TDD ๊ฐ•์˜๋ฅผ ๋“ค์œผ๋ฉฐ nodeJS๋กœ ๊ตฌํ˜„ํ•ด๋ณด์•˜๋‹ค !_! reactQuery ์—ฐ์Šตํ•˜๋ ค๊ณ  ๋งŒ๋“ค๊ธฐ ์‹œ์ž‘ํ•œ๊ฑฐ์˜€๊ณ , ํ•ด๋ณด๋ฉด์„œ๋„ ๋Š๋‚€๊ฑฐ์ง€๋งŒ ๊ณ„์†ํ•ด์„œ ์‚ฌ์šฉํ•ด๋ณด๊ณ  ๊ณ„์† ๊ณต๋ถ€ํ•ด์•ผ๊ฒ ๋‹ค๊ณ  ๋Š๋‚€๋ถ€๋ถ„์ด ๋งŽ์•˜๋‹ค. ํ•ด๋ดค๋˜๊ฒƒ๋“ค๋„ ์‚ฌ์šฉ์•ˆํ•˜๋‹ค๋ณด๋‹ˆ ์žŠ์–ด๋ฒ„๋ฆฌ๊ณ  ์‹ค์ˆ˜ํ•˜๋Š” ๋ถ€๋ถ„์ด ๋งŽ์•˜๋‹น ๐Ÿซ  ๊ทธ๋ž˜๋„ ํ•˜๊ณ ๋‚˜๋‹ˆ ๋ฟŒ-๋“ฏ '-'b ๐Ÿ–ค๐Ÿค ์•„๋ฌด๋„ ์•ˆ๊ถ๊ธˆํ•ดํ•˜๊ฒ ์ง€๋งŒ ๋‚จ๊ฒจ๋ณด๋Š” ์ฝ”๋“œโค๏ธ : ๋”๋ณด๊ธฐ https://github.com/Amy-Eunji/nodejs https://github.com/Amy-Eunji/react-crud

๐Ÿ’™ React 2023. 9. 22. 16:02
[REACT] ReactQuery

React-Query๋ž€? ๐Ÿ‘‰๐Ÿป React Query๋Š” React Application์—์„œ ์„œ๋ฒ„ ์ƒํƒœ๋ฅผ ๋ถˆ๋Ÿฌ์˜ค๊ณ , ์บ์‹ฑํ•˜๋ฉฐ, ์ง€์†์ ์œผ๋กœ ๋™๊ธฐํ™”ํ•˜๊ณ  ์—…๋ฐ์ดํŠธํ•˜๋Š” ์ž‘์—…์„ ๋„์™€์ฃผ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค. React-Query์˜ ์žฅ์  โœ”๏ธ React ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋‚ด์—์„œ ๋ฐ์ดํ„ฐ ํŒจ์นญ, ์บ์‹ฑ, ๋™๊ธฐ์ , ๊ทธ๋ฆฌ๊ณ  ์„œ๋ฒ„์˜ ์ƒํƒœ์˜ ์—…๋ฐ์ดํŠธ๋ฅผ ์ข€ ๋” ์šฉ์ดํ•˜๊ธฐ ์œ„ํ•ด ๋งŒ๋“ค์–ด์ค€๋‹ค. โœ”๏ธ ๊ธฐ์กด์—๋Š” ์ง์ ‘ ๋งŒ๋“ค์–ด์„œ ์‚ฌ์šฉํ–ˆ๋˜ ๊ธฐ๋Šฅ๋“ค์„ ๋ณ„๋„์˜ ์˜ต์…˜์œผ๋กœ ์ง€์›ํ•˜์—ฌ ๋ณต์žกํ•˜๊ณ  ์ดํ•ดํ•  ์ˆ˜ ์—†๋Š” ์ˆ˜๋งŽ์€ ์ฝ”๋“œ๋ฅผ ๋Œ€์‹  React-Query ๋กœ์ง์„ ํ†ตํ•ด ์งง์€ ์ฝ”๋“œ๋กœ ๋Œ€์ฒดํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ๋‹ค. โœ”๏ธ ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ๊ฐ€ ๊ธฐ์กด๋ณด๋‹ค ๋‹จ์ˆœํ•ด์ ธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์œ ์ง€ ๋ณด์ˆ˜ํ•˜๊ธฐ ์‰ฝ๊ณ , ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์„ ์‰ฝ๊ฒŒ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ทธ ์™ธ์—๋„ ๋งŽ์€ ์žฅ์ ์ด ์žˆ๋‹ค. → useQuery, useM..

๐Ÿ’™ React 2023. 8. 24. 16:25