react21 Ref๋ฅผ ์ข ๋ ์ ์จ๋ณผ๊น? (forwardRef์ useImperativeHandle) ๋ค์ด๊ฐ๋ฉฐ: React์ Ref ์ ๋ฌ ๋ฌธ์ React์ ์ปดํฌ๋ํธ์์ ref๋ฅผ ์ ๋ฌํ๋ ค๊ณ ํ๋ฉด ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค.// ๐จ ๋์ํ์ง ์๋ ์ฝ๋const Input = (props) => { return ;};// ๋ถ๋ชจ ์ปดํฌ๋ํธconst Parent = () => { const inputRef = useRef(null); return ; // ref๊ฐ ์ ๋ฌ๋์ง ์์};์ด๋ React๊ฐ ๊ธฐ๋ณธ์ ์ผ๋ก ref๋ฅผ ์ผ๋ฐ prop์ผ๋ก ์ ๋ฌํ์ง ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ์ด๋ฐ ์ ํ์ด ์๋ ์ด์ ๋:1. ์บก์ํ ์ ์ง: ๋ด๋ถ ๊ตฌํ ์ธ๋ถ์ฌํญ์ ๋ณดํธ2. ์์ธก ๊ฐ๋ฅํ ๋ฐ์ดํฐ ํ๋ฆ ๋ณด์ฅ3. ๋ถํ์ํ ๋ ธ์ถ ๋ฐฉ์ง forwardRef: React์ ๊ณต์์ ์ธ ref ์ ๋ฌ ๋ฉ์ปค๋์ฆReact ๊ณต์ ๋ฌธ์์ ๋ฐ๋ฅด๋ฉด, `forwardRef`๋ ๋ค์๊ณผ ๊ฐ์ .. 2024. 6. 28. react-query๋ฅผ ์งง๊ฒ ์ฌ์ฉํด๋ณธ ํ๊ณ ..๋๊น...? ์ง๊ธ ์งํํ๊ณ ์๋ ํ๋ก์ ํธ์์ react-query์ recoil์ ์ฌ์ฉํด์ ์ํ๊ด๋ฆฌ๋ฅผ ํด์ฃผ๊ณ ์๋ค. ๋ฌผ๋ก ํ๋ก์ ํธ๊ฐ ์์ง ๋๋์ง ์์๋คใ ใ .. ์ฌ์ค ์๋ ๊น์ง๋ง ํด๋ ์ฑ์ฉ๊ณต๊ณ ๋ ๊ทธ๋ฐ ๊ณณ๋ค์ Redux๊ฐ ๊ฐ๋์ฐผ์๋๋ฐ ์ด๋ ์๊ฐ๋ถํด๊ฐ React-Query์ ์ ์ ์จ์ด ๋์์ง๊ธฐ ์์ํ๋ค. ๊ณต๋ถํด์ผ์ง..ํด์ผ์ง..์๊ฐํ๋ค๊ฐ ์ฌ์ฉํ๊ณ ์๋ ํ๋ก์ ํธ์ ์ฐ์ฐํ ๋ค์ด๊ฐ๊ฒ ๋๋ฉด์ ํด์ผ๋งํ๊ฒ ๋๋ค.. ๋ฆฌ์ฝ์ผ์ ์ด์ ์ ํ์ตํด๋ดค๋๋ฐ ๋ฆฌ์กํธ ์ฟผ๋ฆฌ๋ ์ํด๋ด์ ์ด์ง ๊ฒ์ด ๋ฌ์๋ค ๊ทผ๋ฐ ์ง๊ธ ํด๋ณด๋ ์ ์ฉํ๊ณ ์ฌ์ฉํ๋ ๋ฐ์ ์์ด์๋ ํฌ๊ฒ ์ด๋ ต์ง ์์ผ๋ ๋์ฒ๋ผ ๊ฒ๋จน์ ์ฌ๋์ด ์๋ค๋ฉด ์ผ๋จ ํด๋ณด๋ผ๊ณ ๋งํ๊ณ ์ถ๋ค. ์ผ๋จ ๋๋์ฒด ์์ฆ ์ ๋ค ๋ฆฌ์กํธ ์ฟผ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ ๊ฑด์ง์ ๋ํ ์๋ฌธ์ด ๋ค์์๋ค. ์ดํดํด๋ณด๋ ค๊ณ ์๋ฃ๋ฅผ ๋ง์ด ์ฐพ์๋ดค๋๋ฐ ์๋ฃ๋ ์๋ฃ์ง๋ง ์ง์ .. 2023. 4. 4. Redux ๋ฆฌ๋์ค๋ ์ด๋ ต๋ค... Redux? ์ปดํฌ๋ํธ๊ฐ ๋ง์์๋ก ๋ณต์กํด์ง๋ ์ํ๋ฅผ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ why? ๊ตฌ์กฐ๊ฐ ์ ์ ๋ณต์กํด์ง๋ฉด์ ๋ถ๋ชจ ์ปดํฌ๋ํธ๋ถํฐ ์ตํ์ ์ปดํฌ๋ํธ๊น์ง ๋ด๋ ค์ค๋ฉด์ ์ํ๋ฅผ ๊ด๋ฆฌํ๋ ๊ฒ์ ๋๋ฌด ๋นํจ์จ์ ! ๋ฆฌ๋์ค๋ก ๋ฐ๊นฅ์์ ์ํ๊ด๋ฆฌ๋ฅผ ํด์ฃผ๋ฉด์ ํจ์จ์ ์ผ๋ก ์ ๊ทผ! ์ดํด๊ฐ ๋์ง ์๋๋ค๋ฉด ์๋์ ๊ฐ์ ์ํฉ์ ๋ณด์! ๐ ์์ ์ปดํฌ๋ํธ ๊ตฌ์กฐ๊ฐ ์๋์ ์ปดํฌ๋ํธ๊ตฌ์กฐ์ ๊ฐ์ด ๋ณต์กํด์ก๋ค๊ณ ๊ฐ์ ํด๋ณด์. ์ด๋ด ๊ฒฝ์ฐ, ์ตํ์ ์์ ์ปดํฌ๋ํธ๊น์ง ์ํ๋ฅผ ์ ๋ฌํด์ฃผ๊ฑฐ๋ ์์ ์ปดํฌ๋ํธ์์ ๋ฐ์ํ ์ด๋ฒคํธ์ ์ํด์ ๋ค๋ฅธ ๋ฃจํธ์ ์๋ ์ปดํฌ๋ํธ์ ์ํ๋ณํ๋ฅผ ๋ถ๋ฌ์ผ์ผ์ผ์ผํ๋ ์ํ์ผ ๊ฒฝ์ฐ์ผ ๋ ๋นํจ์จ์ ์ผ๋ก ์๋ํ๋ ๊ฒ์ ๋ณผ ์ ์๋ค. How? ์์ ์ ๊ฐ ๋ฌธ์ ๋ก ์ ์ํ๋ ์ํฉ๋ค์ ๋ฆฌ๋์ค๋ ๋ฐ๊นฅ์์ ์ํ๊ด๋ฆฌ๋ฅผ ํ ์ ์๋๋ก ๋์์ค ๋ฆฌ.. 2021. 7. 13. [React] LifeCycle (๋ผ์ดํ์ฌ์ดํด, ์๋ช ์ฃผ๊ธฐ) ์น์ ๊ณต๋ถํ๋ค๋ณด๋ฉด ๋น ์ง ์ ์๋๊ฒ ๋ ๋ฐ๋ก ๋ผ์ดํ์ฌ์ดํด์ด๋ค. ์ง๊ธ๊น์ง ๋๋ ๋ผ์ดํ ์ฌ์ดํด ๊ฐ๋ ๋ง ๊ณต๋ถ๋ฅผ ํด์ ์ ํํ๊ฒ ์ด๋์ ์ฐ์ด๊ณ ๋ด๊ฐ ์ฌ์ฉํ๋ฉด์๋ ์ด๊ฒ ๋ผ์ดํ์ฌ์ดํด์ด ์ด๋ป๊ฒ ์ฌ์ฉ๋๋์ง์กฐ์ฐจ ์ ํํ๊ฒ ์์ง ๋ชปํ๊ณ ๋์ด๊ฐ์๋๋ฐ ์ด๋ฒ ๊ธฐํ๋ฅผ ํตํด ์ ํํ ์ง๊ณ ๋์ด๊ฐ๋ ค๊ณ ํ๋ค. ์ผ๋จ, ๊ตฌ๊ธ์ react lifecycle์ด๋ผ๊ณ ์น๋ฉด ํญ์ ๋์ค๋ ๊ทธ๋ฆผ์ด ์๋ค. mount๋ถํฐ unmount๊น์ง ์ข๋ฅด๋ฅต ์๋ ์ฌ์ง์ด๋ค. ๋๋ ๊ทธ๋ฅ ์ด๊ฒ๋ง ๊ณต๋ถํ๊ณ ์๊ณ ์์๋ค. ๊ทผ๋ฐ ์ ๋ผ์ดํ์ฌ์ดํด์ ๋ํด์ ์์์ผํ๋์ง ๊ทผ๋ณธ์ ์ธ ๋ถ๋ถ์ ๋ํด ๋ถ์กฑํ๋ค๊ณ ๋๊ปด์ ์ด๋ฒ์ ๊ทธ ๋ถ๋ถ์ ์ข ๋ ์์ธํ ์์๋ณด๋๋ก ํด์ผ๊ฒ ๋ค! ๋ผ์ดํ์ฌ์ดํด์ด๋? ๋ผ์ดํ ์ฌ์ดํด์ ๊ฐ๋จํ ์๋ฉ๋ง ๋ณด๋๋ผ๋ 'ํ ํ๋ฉด์ด ์์ฑ๋๊ณ ์ฌ๋ผ์ง๊ธฐ๊น์ง์ ๊ณผ์ '์ด๋ผ๊ณ ๋ณผ ์ ์๋ค. ์ ๋ผ์ด.. 2021. 7. 5. [React] Rerendering(๋ฆฌ๋ ๋๋ง) ๋ฆฌ์กํธ๋ฅผ ๊ณต๋ถํ๋ค๋ณด๋ฉด, ํจ์จ์ฑ์ด๋ผ๋ ๋จ์ด๋ฅผ ๋นผ๋์ ์๊ฐ ์๋ ๊ฒ ๊ฐ๋ค. ์ ๋ฒ์ ์ ๋ฆฌํ๋ DOM์์์ ๊ฐ์ ๋๋ ๊ทธ๋ ๊ณ , ์ด๋ค ํ ๊ฐ๋ ์ ๊ณต๋ถํ ๋๋ง๋ค ๊ทธ ๊ฐ๋ ์ด ํจ์จ์ ์ด๊ฒ ๋์์ค๋ค๊ณ ํ๋ ๊ฒ์ด ๋ง๋ค๋๊ฒ์ด๋ค. ๋๋ ์ ์ ์ด๋ฐ ์ง๋ฌธ์ ๋ฐ์ ์ ์ด ์๋ค. '๋ฆฌ๋ ๋๋ง์ด ๋ญ์ง ์์๋์?' ์ด ๊ธ์ ๋ณด๋ ์ฌ๋ฌ๋ถ๋ค์ ๋ฌด์จ ๋๋ต์ ํ๊ฒ ๋๊ฐ? ๋๋ ๊ทธ๋๋ ๋ถ๋๋ฝ์ง๋ง ๋ฆฌ๋ ๋๋ง์ด ๊ทธ๋ฅ ๋ ๋๋ง์ ๋ค์ํ๋ค๋ ๊ฑฐ ์๋๊ฐ? ์ด๋ ๊ฒ ์๊ฐํ์๋ค. ์ฌ์ค ๋ง ๋ป์ ๊ทธ๋ ๋ค. ํ์ง๋ง, ์ง๋ฌธ์ ์๋๊ฐ ๊ณผ์ฐ ์ง์ง ๋ป์ ๋ฌผ์ด๋ณด๋ ๊ฒ์ด์์๊น? ์ด๋ ๋ชจ๋ ์ง๋ฌธ์ ๋ต์ ๊ฐ๋ก๊ฐ์ด ํ ๋๋ ์ง์ ์์ ์ฐจ๋ถํ ๋ค ์ ์ด๋จ์๋ค. ๊ทธ๋ฆฌ๊ณ ๋ค์ ๊ณต๋ถํ๋ฉด์ ์ฑ์๋๊ฐ๊ธฐ ์์ํ๋ค. ๋ฆฌ๋ ๋๋ง์ ๋ฌด์์ธ์ง ๊ทผ๋ณธ๋ถํฐ ์์์ผํ๋ฉฐ, ์ ์ด๊ฑธ ์์์ผํ๋์ง, ์ด๋์์ ์ด ๊ฐ๋ ์ด ์ฐ์ด๋.. 2021. 6. 24. ํ์ด์ด๋ฒ ์ด์ค(Firebase) - NoSQL,Collection,Document ์ด๋ฒ์ ํ๋ก์ ํธ๋ฅผ ์ ๋ฆฌํ๋ฉด์ ํ์ด์ด๋ฒ ์ด์ค๋ฅผ ์ฌ์ฉํ๋ ํ๋ก์ ํธ๋ฅผ ๋ค์ ๋ณด๊ฒ ๋์๋ค. ์ฌ์ฉํด๋ดค์ง๋ง ์ ํํ ๊ณต๋ถํด๋ณด๊ณ ๋์ด๊ฐ์ผ๊ฒ ๋ค๊ณ ์๊ฐ์ด ๋ค์ด์ ๋ค์ ์ ๋ฆฌ๋ฅผ ํด๋ดค๋ค. ํ์ด์ด๋ฒ ์ด์ค์์ ๋ด๊ฐ ์ฌ์ฉํ๋ ๊ธฐ๋ฅ์ Firebase Database(DB)์ Firebase Authentication(Auth)์ด๋ค. Firebase Auth๋ ์ด๋ฉ์ผ, ๊ตฌ๊ธ ๋ฑ ๋ค์ํ sns๋ฅผ ์ด์ฉํ ๋ก๊ทธ์ธ ์ธ์ฆ ๊ธฐ๋ฅ์ ์ ๊ณตํ๊ณ ์๋ค. ์ด ๋ถ๋ถ์ ์์ ์ด ๊ตฌํํ๋ ค๊ณ ํ๋ ํ๋ก์ ํธ์ ๋ฐ๋ผ ํ์ฉํด์ฃผ์ด ์ฌ์ฉํด์ฃผ๋ฉด ๋๋ค. ์ด ์ ์ ๊ทธ๋ค์ง ์ด๋ ต์ง ์์๋ค. ํ์ง๋ง, Firebase DB์ ์ ๊ทผํด์ ์ ๋ณด๋ฅผ ์ ์ฅํ๊ณ ๊บผ๋ด์ ์ฐ๋ ๋ถ๋ถ์ ์์ด ์ฒ์์ ์ด๋ ค์์ ๋๊ผ์๋ค. ๋์๊ฒ Collection๊ณผ Document์ ๋ํ ๊ฐ๋ ์ด ๋ค์ฃฝ๋ฐ์ฃฝ ๋ค๊ฐ์์ ์ด๋ ค์ ์๋๋ฐ .. 2021. 6. 24. ์ด์ 1 2 3 4 ๋ค์ ๋ฐ์ํ