WEB/REACT23 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. [โ๏ธํธ๋ฌ๋ธ์ํ ] useEffect ๋ด setState ๋ฌดํ๋ฃจํ ์๋ ๋ฌธ์ ๊ฐ ์๋ ์ฝ๋์ ์ด๋ฒ์ border๋ฅผ linear๋ก ๋ฐ๊พธ๋ฉด์ setํจ์๋ฅผ ๋ฐฐ์ด๋ก ๋๊ฐ ๋ฃ์ด์ฃผ๋ค๋ณด๋ ์๋ฌ๊ฐ ๋ฐ์ํ๋ค. # ์๋ ์ฝ๋ useEffect(() => { if (isPost.data?.isAllSeen == false) { for (let i = 0; i < isPost.data?.seenPostList.length; i++) { if (isPost.data?.seenPostList[i].isSeen == false) { if (isPost.data?.seenPostList[i].isPublic == true) { setBorderColor(['#6935FD', '#9747FF']); setIndex(i); break; } if (isPost.data?.seenPostList[i].is.. 2023. 10. 5. react-query๋ฅผ ์งง๊ฒ ์ฌ์ฉํด๋ณธ ํ๊ณ ..๋๊น...? ์ง๊ธ ์งํํ๊ณ ์๋ ํ๋ก์ ํธ์์ react-query์ recoil์ ์ฌ์ฉํด์ ์ํ๊ด๋ฆฌ๋ฅผ ํด์ฃผ๊ณ ์๋ค. ๋ฌผ๋ก ํ๋ก์ ํธ๊ฐ ์์ง ๋๋์ง ์์๋คใ ใ .. ์ฌ์ค ์๋ ๊น์ง๋ง ํด๋ ์ฑ์ฉ๊ณต๊ณ ๋ ๊ทธ๋ฐ ๊ณณ๋ค์ Redux๊ฐ ๊ฐ๋์ฐผ์๋๋ฐ ์ด๋ ์๊ฐ๋ถํด๊ฐ React-Query์ ์ ์ ์จ์ด ๋์์ง๊ธฐ ์์ํ๋ค. ๊ณต๋ถํด์ผ์ง..ํด์ผ์ง..์๊ฐํ๋ค๊ฐ ์ฌ์ฉํ๊ณ ์๋ ํ๋ก์ ํธ์ ์ฐ์ฐํ ๋ค์ด๊ฐ๊ฒ ๋๋ฉด์ ํด์ผ๋งํ๊ฒ ๋๋ค.. ๋ฆฌ์ฝ์ผ์ ์ด์ ์ ํ์ตํด๋ดค๋๋ฐ ๋ฆฌ์กํธ ์ฟผ๋ฆฌ๋ ์ํด๋ด์ ์ด์ง ๊ฒ์ด ๋ฌ์๋ค ๊ทผ๋ฐ ์ง๊ธ ํด๋ณด๋ ์ ์ฉํ๊ณ ์ฌ์ฉํ๋ ๋ฐ์ ์์ด์๋ ํฌ๊ฒ ์ด๋ ต์ง ์์ผ๋ ๋์ฒ๋ผ ๊ฒ๋จน์ ์ฌ๋์ด ์๋ค๋ฉด ์ผ๋จ ํด๋ณด๋ผ๊ณ ๋งํ๊ณ ์ถ๋ค. ์ผ๋จ ๋๋์ฒด ์์ฆ ์ ๋ค ๋ฆฌ์กํธ ์ฟผ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ ๊ฑด์ง์ ๋ํ ์๋ฌธ์ด ๋ค์์๋ค. ์ดํดํด๋ณด๋ ค๊ณ ์๋ฃ๋ฅผ ๋ง์ด ์ฐพ์๋ดค๋๋ฐ ์๋ฃ๋ ์๋ฃ์ง๋ง ์ง์ .. 2023. 4. 4. ๋ฆฌ์กํธ์์ setState๋ฅผ ํตํด์ state๋ฅผ ๋ณ๊ฒฝํด์ฃผ๋ ์ด์ / setState์ ๋น๋๊ธฐ์ฑ ๋ฆฌ์กํธ๋ฅผ ์ฌ์ฉํ๋ฉด์ ์ฒ์์๋ ์๋ ์๋ฌธ์ด ๊ฐ์๊ธฐ ์๊ฒผ์๋ค. ์ ๋ฆฌ์กํธ๋ useState๋ผ๋ ํ ์ ์ฌ์ฉํด์ ์ํ๊ด๋ฆฌ๋ฅผ ํ๋๊ฒ์ธ๊ฐ ๋ฌผ๋ก ํ ์ ์ฌ์ฉํด์ ๋ผ์ดํ์ฌ์ดํด์ ์กฐ์ํ ์ ์๊ฒ ํ์ฌ ๋ถํ์ํ ๋ฆฌ๋ ๋๋ง์ ๋ง์์ฃผ๊ณ , ๋ด๊ฐ ์ํ๋ ์์ ์ ์ํ๋ ๋์์ ํ๋๋ก ๋ง๋ค์ด์ฃผ๋ ๊ฒ์ผ ๊ฑฐ๋ค. ํ์ง๋ง, ์!! ์๋ฐ์คํฌ๋ฆฝํธ์์ ๋ณ์ ์ฌ์ฉํ๋ฏ์ด ์ฌ์ฉํ๋ฉด ์๋๋๊ฒ์ด๋ ์ด๊ฒ ๋ฌธ๋ ๊ถ๊ธํด์ก๋ค ์ด์ state๋ immutable(๋ถ๋ณ์ฑ)์ ์ ์งํด์ผํ๊ธฐ ๋๋ฌธ์ด๋ค. ์ปดํฌ๋ํธ๋ ํ์ฌ์ this.state์ setState๋ฅผ ๋น๊ตํด์ ์ ๋ฐ์ดํธ๊ฐ ํ์ํ ๊ฒฝ์ฐ์๋ง render ํจ์๋ฅผ ํธ์ถํ๋๋ฐ, state๋ฅผ ์ง์ ์์ ํ๊ฒ ๋๋ฉด ๋ฆฌ์กํธ๊ฐ render ํจ์๋ฅผ ํธ์ถํ์ง ์์ ์ํ ๋ณ๊ฒฝ์ด ์ผ์ด๋๋ ๋ ๋๋ง์ด ์ผ์ด๋์ง ์์ ์ ์๋ค. ์ํ ๋ณ๊ฒฝ์ ์ถ์ ํ.. 2022. 10. 21. Redux ๋ฆฌ๋์ค๋ ์ด๋ ต๋ค... Redux? ์ปดํฌ๋ํธ๊ฐ ๋ง์์๋ก ๋ณต์กํด์ง๋ ์ํ๋ฅผ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ why? ๊ตฌ์กฐ๊ฐ ์ ์ ๋ณต์กํด์ง๋ฉด์ ๋ถ๋ชจ ์ปดํฌ๋ํธ๋ถํฐ ์ตํ์ ์ปดํฌ๋ํธ๊น์ง ๋ด๋ ค์ค๋ฉด์ ์ํ๋ฅผ ๊ด๋ฆฌํ๋ ๊ฒ์ ๋๋ฌด ๋นํจ์จ์ ! ๋ฆฌ๋์ค๋ก ๋ฐ๊นฅ์์ ์ํ๊ด๋ฆฌ๋ฅผ ํด์ฃผ๋ฉด์ ํจ์จ์ ์ผ๋ก ์ ๊ทผ! ์ดํด๊ฐ ๋์ง ์๋๋ค๋ฉด ์๋์ ๊ฐ์ ์ํฉ์ ๋ณด์! ๐ ์์ ์ปดํฌ๋ํธ ๊ตฌ์กฐ๊ฐ ์๋์ ์ปดํฌ๋ํธ๊ตฌ์กฐ์ ๊ฐ์ด ๋ณต์กํด์ก๋ค๊ณ ๊ฐ์ ํด๋ณด์. ์ด๋ด ๊ฒฝ์ฐ, ์ตํ์ ์์ ์ปดํฌ๋ํธ๊น์ง ์ํ๋ฅผ ์ ๋ฌํด์ฃผ๊ฑฐ๋ ์์ ์ปดํฌ๋ํธ์์ ๋ฐ์ํ ์ด๋ฒคํธ์ ์ํด์ ๋ค๋ฅธ ๋ฃจํธ์ ์๋ ์ปดํฌ๋ํธ์ ์ํ๋ณํ๋ฅผ ๋ถ๋ฌ์ผ์ผ์ผ์ผํ๋ ์ํ์ผ ๊ฒฝ์ฐ์ผ ๋ ๋นํจ์จ์ ์ผ๋ก ์๋ํ๋ ๊ฒ์ ๋ณผ ์ ์๋ค. How? ์์ ์ ๊ฐ ๋ฌธ์ ๋ก ์ ์ํ๋ ์ํฉ๋ค์ ๋ฆฌ๋์ค๋ ๋ฐ๊นฅ์์ ์ํ๊ด๋ฆฌ๋ฅผ ํ ์ ์๋๋ก ๋์์ค ๋ฆฌ.. 2021. 7. 13. [React] useEffect useEffect๋ฅผ ์ข ๋ ์ง์ค์ ์ผ๋ก ๋ค๋ค๋ณผ๋งํ ๊ฐ์น๊ฐ ์๋ค๊ณ ๋๊ผ๋ค. ์ด๋ ๋ผ์ดํ์ฌ์ดํด๊ณผ ์ง๊ฒฐ๋์ด์๊ธฐ ๋๋ฌธ์ ๋ ์ ํํ ์๊ณ ์ฌ์ฉํด์ผ๊ฒ ๋ค๊ณ ์๊ฐํ๋ฉด์ ๋ค์ ๋ฆฌ๋ค๊ธฐ ์ฑ ์ ์ค๋๋ง์ ํด์ ์ดํด๋ณด์๋ค. UseEffect useEffect๋ ๋ฆฌ์กํธ ์ปดํฌ๋ํธ๊ฐ ๋ ๋๋ง๋ ๋๋ง๋ค ํน์ ์์ ์ ์ํํ๋๋ก ์ค์ ํ ์ ์๋ ํ ์ด๋ค. componentDidMount + componentDidUpdate componentDidMount + componentDidUpdate + componentWillUnmount ๋ง์ดํธ ๋ ๋๋ง ์คํํ๊ณ ์ถ์ ๋ (ComponentDidMount) useEffect(() => { console.log('๋ง์ดํธ๋ ๋๋ง'); },[]); ์ปดํฌ๋ํธ๊ฐ ํ๋ฉด์ ๋งจ ์ฒ์ ๋ ๋๋ง ๋์ ๋๋ง ์คํํ๊ณ ์ถ์ .. 2021. 7. 6. ์ด์ 1 2 3 4 ๋ค์ ๋ฐ์ํ