WEB/REACT23 [React] ref ์ค๋์ ref์ ๋ํด์ ๊ณต๋ถํด๋ณด์๋ค. ๋ฆฌ์กํธ๋ฅผ ๋ค๋ฃจ๋ ๊ธฐ์ ์ฑ ์ ๋ณด๋ฉด์ ๊ณต๋ถ๋ฅผ ํ๋ค๊ฐ ref์ ๋ํด์ ์ดํด๊ฐ ๋ถ์กฑํด์ ๊ณต์๋ฌธ์๋ฅผ ์ฐพ์๋ณด๊ฒ ๋์๋ค. ko.reactjs.org/docs/refs-and-the-dom.html ref(Reference) ref๋ ๋ ํผ๋ฐ์ค๋ผ๋ ๋ป์ธ๋ฐ, ์ด๋ฅผ ๋ฒ์ญํ๋ฉด ์ฐธ์กฐ๋ผ๋ ๋ง์ด๋ค. ๊ณผ์ฐ ์ฝ๋ฉ์์ ์ฐธ์กฐ๋ผ๋ ๊ฒ์ ์ด๋ค ๊ฒ์ ๋ปํ๋ ๊ฒ์ผ๊น? ์๋ ๋ค๋ฅธ ์ธ์ด๋ฅผ ๋ฐฐ์ธ ๋, ์ฐธ์กฐ๋ ๋ณต์ ์ ๋น๊ต๊ฐ ๋์์๋ค. ๋ณต์ ๋ ํ์ผ์ ๋ณต์ฌํ๋ ๊ฒ์ด๋ผ๋ฉด, ์ฐธ์กฐ๋ ๋ฐ๋ก๊ฐ๊ธฐ๋ฅผ ๋ง๋๋ ๊ฒ๊ณผ ๊ฐ๋ค๊ณ ๋น์ ๋์๋ค. ์ฐธ์กฐ๋ ์๋ณธ ํ์ผ์ ๋ํ ์ฃผ์ ๊ฐ์ด ๋ด๊ฒจ์์ด์ ๋๊ตฐ๊ฐ๊ฐ ์ด ๋ฐ๋ก๊ฐ๊ธฐ์ ์ ๊ทผํ๋ค๋ฉด ์ฌ๊ธฐ์ ์ ์ฅ๋ ์๋ณธ์ ์ฃผ์๋ฅผ ์ฐธ์กฐํด์ ์๋ณธ์ ์์น๋ฅผ ์์๋ด๊ณ ์๋ณธ์ ๋ํ ์์ ์ ํ๊ฒ ๋๋ ๊ฒ์ด๋ค. ์ฝ๊ฒ ๋งํ๋ฉด, ์๊ฒฉ์ผ.. 2021. 1. 1. [React] render() ํจ์ renderํจ์์ ๋ํ ๊ถ๊ธ์ฆ์ ์ค๋ ์ปดํฌ๋ํธ์ ๊ดํ ๋ฆฌ์กํธ ๊ณต์๋ฌธ์๋ฅผ ๋ณด๋ค๊ฐ ์์๋๋ค. ํจ์ํ ์ปดํฌ๋ํธ์ ํด๋์คํ ์ปดํฌ๋ํธ์ ์ฐจ์ด์ ๋ํด์ ๊ณต๋ถ๋ฅผ ํ๋ค๊ฐ renderํจ์์ ๋ํ ์๋ฌธ์ด ์๊ฒผ๋ค. ์ ๋ฌธ์๋ฅผ ๋ณด๋ค๊ฐ ์ง๊ธ๊น์ง ์์ ๋ก ์์ฑํด๋ดค๋ ์ฝ๋๋ค๊ณผ ๋ค๋ฅด๊ฒ ReactDOM.render๋ผ๋ ํจ์๊ฐ ์ฐ์ธ๊ฒ์ ๋ณด๊ฒ ๋์๋ค. ์ง๊ธ๊น์ง๋ ํด๋์คํ ์ปดํฌ๋ํธ์์ state๊ฐ์ ๋ณ๊ฒฝํ๊ธฐ ์ํด์ renderํจ์๋ฅผ ์์ฑํ๋ ๊ฒ ๋ฐ์ ์์๋๋ฐ ReactDOM.renderํจ์๋ ๊ณผ์ฐ ์ด๋์ ์ฐ์ด๋ ๊ฒ์ผ๊น?๋ผ๋ ๊ถ๊ธ์ฆ์ ์ด๊ณณ์ ๊ณณ์ ์ฐพ์๋ณด์๋ค. renderํจ์์ ๋ํ ๊ณต์๋ฌธ์(ko.reactjs.org/docs/react-dom.html#render)๋ฅผ ๋ณด๊ฒ ๋์์ ๋, ReactDOM.renderํจ์๋ ์ต์ ์ React ์๋ฆฌ๋จผํธ.. 2020. 12. 30. [React] ํจ์ํ ์ปดํฌ๋ํธ VS ํด๋์คํ ์ปดํฌ๋ํธ ์๋ ํ์ธ์. ์ค๋์ ์ปดํฌ๋ํธ์ ๋ํด์ ์์๋ณด๊ฒ ์ต๋๋ค. ์ปดํฌ๋ํธ๋ ์ธํฐํ์ด์ค๋ฅผ ์ค๊ณํ ๋ ์ฌ์ฉ์๊ฐ ๋ณผ ์ ์๋ ์ฌ๋ฌ๊ฐ์ง ์์๋ค์ ๋ปํฉ๋๋ค. ์ปดํฌ๋ํธ๋ props๋ฅผ ๋ฐ์์ elelement๋ฅผ ์ถ๋ ฅํ๋ ํจ์์ ๊ฐ์ต๋๋ค. ์ด๋ฌํ ์ปดํฌ๋ํธ๋ฅผ ์ ์ธํ๋ ๋ฐฉ์์ผ๋ก๋ ๋๊ฐ์ง๊ฐ ์์ต๋๋ค. ๋ฐ๋ก ํจ์ํ ์ปดํฌ๋ํธ์ ํด๋์คํ ์ปดํฌ๋ํธ! ๊ณผ์ฐ ๋์ ์ด๋ค ์ฐจ์ด๊ฐ ์๊ณ , ์ด๋ค ๊ธฐ์ค์ผ๋ก ์ฌ์ฉํ ์ปดํฌ๋ํธ๋ฅผ ์ ํ๋๊ฒ ์ข์๊น์? ์ ๋ ์ด์ ๋ํ ๋ด์ฉ์ '๋ฆฌ์กํธ๋ฅผ ๋ค๋ฃจ๋ ๊ธฐ์ ' ์ฑ ๊ณผ ๋ฆฌ์กํธ ๊ณต์๋ฌธ์๋ฅผ ์ฌ์ฉํ์ฌ ๊ณต๋ถํ์ต๋๋ค. (ko.reactjs.org/docs/components-and-props.html#function-and-class-components) ์ ๊ฐ ์ดํดํ ๊ฐ๋ ์ ์ฐ๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์, ํ๋ฆด ์๋ ์๋ค๋ ์ ! โ์ฝ๋๋น๊ต //ํจ.. 2020. 12. 29. [React] JSX โ์๋ ๋ด์ฉ์ [๋ฆฌ์กํธ๋ฅผ ๋ค๋ฃจ๋ ๊ธฐ์ ] ์ฑ ์์ ๊ณต๋ถํ ๋ด์ฉ์ ์์ฝํ์์ต๋๋ค. JSX๋ ์๋ฐ์คํฌ๋ฆฝํธ์ ํ์ฅ๋ฌธ๋ฒ์ด๋ฉฐ, XML๊ณผ ๋งค์ฐ ๋น์ทํ๊ฒ ์๊น JSX๋ฅผ ์ฌ์ฉํ๋ฉด,,, ํธํ๊ฒ ๋ ๋๋ง ๊ฐ๋ฅ HTML์ฝ๋์ ์ ์ฌํด์ ๋ณด๊ธฐ ์ฝ๊ณ , ์ต์ ์ปดํฌ๋ํธ๋ฅผ HTMLํ๊ทธ ์ฐ๋ฏ์ด ์ฌ์ฉํ๋ฉด์ ํ์ฉ๋๊ฐ ๋์ ์์) import React from 'react'; function App(){ return( ๋ฆฌ์กํธ ์๋ ! ์ ์๋ํ๋? ); } export default App; ์์ ์ฝ๋์ฒ๋ผ h1ํ๊ทธ์ h2ํ๊ทธ๊ฐ divํ๊ทธ ํ๋๋ก ๊ฐ์ธ์ ธ์๋ค. ์ด๋ ๊ฒ ๋ฆฌ์กํธ ์ปดํฌ๋ํธ์์ ์์ ์ฌ๋ฌ ๊ฐ๋ฅผ ํ๋์ ์์๋ก ๊ฐ์ธ๋ ์ด์ ? ์ปดํฌ๋ํธ ๋ด๋ถ๋ ํ๋์ DOM ํธ๋ฆฌ ๊ตฌ์กฐ๋ก ์ด๋ฃจ์ด์ ธ์ผ ํ๋ค๋ ๊ท์น์ด ์๊ธฐ ๋๋ฌธ ์กฐ๊ฑด๋ถ ์ฐ์ฐ์ JSX ๋ด๋ถ์ ์๋ฐ์คํฌ๋ฆฝํธ .. 2020. 12. 23. [React] ์ด๋ฒคํธ ํธ๋ค๋ง EVENT = ํน์ '์ฌ๊ฑด' ๋ฒํผ ํด๋ฆญ ์ด๋ฒคํธ => ์ฌ์ฉ์๊ฐ ๋ฒํผ์ ํด๋ฆญํ ์ฌ๊ฑด HTML Activate Lasers HTML onclick์ด ์๋ฌธ์๋ก ์ด๋ฃจ์ด์ ธ์์ ์ด๋ฒคํธ๋ฅผ ์ฒ๋ฆฌํ ํจ์๋ฅผ ํฐ๋ฐ์ดํ("")๋ก ๋ฌถ์ด์ ํํํด๋์์ React Activate Lasers React onClick์ C๊ฐ HTML๊ณผ ๋ค๋ฅด๊ฒ ๋๋ฌธ์๋ก ๋ํ๋ ์ด๋ฒคํธ๋ฅผ ์ ๋ฌํ ๋ ๋ฌธ์์ด์ด ์๋ ํจ์(์ด๋ฒคํธ์ฒ๋ฆฌ ํจ์)๋ฅผ ์ ๋ฌ Camel Case ํ์ผ, ๋ณ์, ํจ์ ๋ฑ ๋์์ ์ด๋ฆ์ ๋์ด์ฐ๊ธฐ ์์ด ์ง๊ธฐ ์ํจ ๋ฆฌ์กํธ์ ํจ์ ํธ๋ค๋ง์์ ์ฌ์ฉ๋จ Event handler = Event Listener ์ด๋ฒคํธ๋ฅผ ์ฒ๋ฆฌํ๋ ํจ์ ์ด๋ค ์ฌ๊ฑด์ด ๋ฐ์ํ๋ฉด, ์ฌ๊ฑด์ ์ฒ๋ฆฌํ๋ ์ญํ ์ด๋ฒคํธ ํธ๋ค๋ง ๊ณต์ ๋ฌธ์ ์ฌ์ด ์์(onClick ์ฌ์ฉ) JS) onClick .. 2020. 11. 30. ์ด์ 1 2 3 4 ๋ค์ ๋ฐ์ํ