Component
-
- [React.js] const Component vs. function Component
const Component vs. function Component๋ค์ด๊ฐ๋ฉฐ๋ฆฌ์กํธ(React.js)์์ @const Component@ ํํ์ ํ์ดํ ํจ์ ๋ฐฉ์๊ณผ @function Component@ ํํ์ ํจ์ ์ ์ธ ๋ฐฉ์์ผ๋ก ์ปดํฌ๋ํธ๋ฅผ ์ ์ธํ ์ ์๋ค.์์ ๋ ๊ฐ์ง ๋ฐฉ๋ฒ์ ๋ํ ์ฐจ์ด์ ์ ์ ๋ฆฌํด๋ณธ๋ค. โ ํ์ดํ ํจ์ ๋ฐฉ์const MyComponent = () => { return( .. )} ํ์ดํ ํจ์(Arrow Function)๋ก ์์ฑํ ์ ์์ผ๋ฉฐ, ์งง์ ์ฝ๋๋ก ์์ฑํ ์ ์๋ค๋ ์ฅ์ ์ด ์๋ค.์๋ฅผ ๋ค์ด, ํ ์ค๋ก ๋ฐํํ๋ ๊ฒฝ์ฐ, @return@ ํค์๋๋ฅผ ์๋ตํ ์ ์๋ค.const MyComponent = () => ( ... ) ์ปดํฌ๋ํธ ์ ์ธ๊ณผ ๋์์ @export default..
2 2024.11.04 -
- [Styled-Components] ์ธ๋ถ ์ปดํฌ๋ํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ UI ์ปดํฌ๋ํธ ์คํ์ผ์ ์ง์ ์์ ํ๋ ๋ฐฉ๋ฒ
์ธ๋ถ ์ปดํฌ๋ํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ UI ์ปดํฌ๋ํธ ์คํ์ผ์ ์ง์ ์์ ํ๋ ๋ฐฉ๋ฒ๋ค์ด๊ฐ๋ฉฐ@antd@ ๋ฑ ์ธ๋ถ ์ปดํฌ๋ํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ UI ์ปดํฌ๋ํธ๋ฅผ Styled-Components๋ฅผ ์ด์ฉํ์ฌ ์ง์ ์์ ํ๋ ๋ฐฉ๋ฒ์ ์ ๋ฆฌํด๋ณธ๋ค. ๋ฐฉ๋ฒ์คํ์ผ ํ์ผ(@์ปดํฌ๋ํธ๋ช .style.js@)์ด๋ ์ปดํฌ๋ํธ ํ์ผ(@์ปดํฌ๋ํธ๋ช .js/jsx/tsx@)์์ ๋ค์๊ณผ ๊ฐ์ด ์ฝ๋๋ฅผ ์์ฑํ๊ณ ๋ณ๊ฒฝ/์ถ๊ฐํ๊ณ ์ ํ๋ ์คํ์ผ์ ๋ฃ์ด์ฃผ๋ฉด ๋๋ค.import styled from "styled-components";import { ์ธ๋ถ์ปดํฌ๋ํธ๋ช } from "์ธ๋ถ_์ปดํฌ๋ํธ_๋ผ์ด๋ธ๋ฌ๋ฆฌ_ํจํค์ง";export const ์ปค์คํ ์ธ๋ถ์ปดํฌ๋ํธ๋ช = styled(์ธ๋ถ์ปดํฌ๋ํธ๋ช )` ์์ฑ: ๊ฐ;`; ๊ทธ๋ฆฌ๊ณ ๋ค๋ฅธ ์ผ๋ฐ์ ์ธ Styled-Components ์์์ฒ๋ผ ์ฌ์ฉํ๋ฉด ๋๋ค.i..
1 2024.10.23 -
- [React.js] index.js๋ก ์ปดํฌ๋ํธ(Component), ํ์ด์ง(Page) ๊ด๋ฆฌํ๊ธฐ
index.js๋ก ์ปดํฌ๋ํธ(Component), ํ์ด์ง(Page) ๊ด๋ฆฌํ๊ธฐ๋ค์ด๊ฐ๋ฉฐ๋ค์๊ณผ ๊ฐ์ด @src@ ํด๋ ๋ด๋ถ์ ์๋ @components@, @pages@ ํด๋ ์์ @index.js@ ํ์ผ์ ์์ฑํ์ฌ ์ฌ๋ฌ ์ปดํฌ๋ํธ์ ํ์ด์ง๋ค์ ํ๋์ ํ์ผ์์ ๊ด๋ฆฌํ ์ ์๋ค.์ด์ ๊ด๋ จ๋ ๋ด์ฉ์ ์ ๋ฆฌํด๋ณธ๋ค. index.js๊ฐ๋ ๋ฆฌ์กํธ(React.js) ํ๋ก์ ํธ์์ @pages@๋ @components@ ํด๋ ์์ ์์นํ @index.js@ ํ์ผ์ ํด๋น ํด๋ ๋ด์ ์ฌ๋ฌ ์ปดํฌ๋ํธ๋ค์ ํ ๊ณณ์์ ์ฝ๊ฒ ๋ถ๋ฌ์ฌ ์ ์๋๋ก ๋ค์ @export@ ํด์ฃผ๋ ์ญํ ์ ํ๋ค.@index.js@ ํ์ผ ์์ ๋ด์ฉ์ ๋ค์๊ณผ ๊ฐ์ด ๊ตฌ์ฑํ ์ ์๋ค. ์ฌ์ฉ ๋ฐฉ๋ฒ@pages@ ๋๋ @components@ ํด๋์ @index.js@ ํ์ผ์ ์์ฑํ ํ,..
2024.10.01 -
- [React.js] ์ปดํฌ๋ํธ๋ฅผ ์์ฑํ๋ ๋ฐฉ๋ฒ 2๊ฐ์ง (JSX, React.createElement)
์ปดํฌ๋ํธ๋ฅผ ์์ฑํ๋ ๋ฐฉ๋ฒ 2๊ฐ์ง (JSX, React.createElement)๋ค์ด๊ฐ๋ฉฐ๋ฆฌ์กํธ(React.js)์์ ์ปดํฌ๋ํธ๋ฅผ ์์ฑํ๋ ๋ฐฉ๋ฒ 2๊ฐ์ง๋ฅผ ์ ๋ฆฌํด๋ณธ๋ค. ์ปดํฌ๋ํธ ์์ฑ ๋ฐฉ๋ฒโ ํจ์ํ ์ปดํฌ๋ํธfunction Greeting() { return ( hello world );} ํจ์ํ ์ปดํฌ๋ํธ๋ ์๋ฐ์คํฌ๋ฆฝํธ ํจ์๋ก ์ ์๋๋ฉฐ, JSX(JavaScript XML) ๋ฌธ๋ฒ์ ์ฌ์ฉํ์ฌ UI๋ฅผ ๋ฐํํ๋ค.@@์ @@ ํ๊ทธ๋ฅผ ์ฌ์ฉํ์ฌ UI๋ฅผ ์ ์ํ๋ค.JSX๋ Babel ๊ฐ์ ์ปดํ์ผ๋ฌ๋ฅผ ํตํด @React.createElement@ ํธ์ถ๋ก ๋ณํ๋๋ค.์ฝ๋๊ฐ ๋ ์ง๊ด์ ์ด๊ณ ์ฝ๊ธฐ ์ฌ์ฐ๋ฉฐ, ์ปดํฌ๋ํธ๋ฅผ ์์ฑํ ๋ HTML๊ณผ ์ ์ฌํ ๋ฌธ๋ฒ์ ์ฌ์ฉํ ์ ์๋ค. โก @React.createElement@imp..
2024.08.26 -
- [Next.js] Image ์ปดํฌ๋ํธ
Image ์ปดํฌ๋ํธ๋ค์ด๊ฐ๋ฉฐNext.js์์ ๊ธฐ๋ณธ์ผ๋ก ์ ๊ณตํ๋ Image ์ปดํฌ๋ํธ์ ๋ํด ์ ๋ฆฌํด๋ณธ๋ค. Image ์ปดํฌ๋ํธ๊ฐ๋ Next.js์์ ๋ค์ํ ํผํฌ๋จผ์ค ๊ธฐ๋ฅ๊ณผ ํธ๋ฆฌํ ์ค์ ์ ์ง์ํ๋ ์ปดํฌ๋ํธ ์ด๋ฏธ์ง ์ปดํฌ๋ํธ๋ฅผ ์ด์ฉํ๋ฉด ์ด๋ฏธ์ง ๋ถ๋ฌ์ค๊ธฐ ์์ ์ ์ต์ ํํ ์ ์๋ค. ๋ํ ์ด๋ฏธ์ง ํฌ๊ธฐ ์กฐ์ , ์ง์ฐ ๋ก๋ฉ(Lazy Loading)์ ์ง์ํ๋ฉฐ, WebP์ ๊ฐ์ ์ต์ ์ด๋ฏธ์ง ํ์์ด ์๋์ผ๋ก ์ฒ๋ฆฌ๋๋ค. ๋ค์ํ ๊ธฐ๊ธฐ์ ํ๋ฉด ํฌ๊ธฐ์ ๋ง๊ฒ ์ด๋ฏธ์ง ํฌ๊ธฐ๋ฅผ ์ ๋์ ์ผ๋ก ์กฐ์ ํ ์ ์๋ค. ์ฌ์ฉ ๋ฐฉ๋ฒ๊ธฐ๋ณธ ์ฌ์ฉ๋ฒ@next/image@ ๋ชจ๋์ ๋ถ๋ฌ์์ ์ฌ์ฉํ๋ค.import Image from 'next/image';export default function Home() { return ( Next.js Image E..
2024.08.05 -
- [React.js] useImperativeHandle๊ณผ forwardRef
useImperativeHandle๊ณผ forwardRef๋ค์ด๊ฐ๋ฉฐ๋ฆฌ์กํธ(React.js)์์ ์ฌ์ฉ๋๋ @useImperativeHandle@๊ณผ @forwardRef@์ ๋ํด ์์๋ณด์.@forwardRef@์ @useImperativeHandle@์ ์ปดํฌ๋ํธ ๊ฐ์ ์ฐธ์กฐ๋ฅผ ๋ค๋ฃจ๊ธฐ ์ํ ๋๊ตฌ์ด๋ค.์ด ๋๊ฐ์ง ๊ฐ๋ ์ ์ดํดํ๋ฉด ์ปดํฌ๋ํธ ์ธ๋ถ์์ ๋ด๋ถ์ DOM ์์๋ ๋ฉ์๋์ ์ ๊ทผํ ์ ์๊ฒ ๋์ด, ๊ณ ๊ธ ์ปดํฌ๋ํธ ์ค๊ณ์ ์ ์ฉํ๋ค๊ณ ํ๋ค. forwardRef๊ฐ๋ ๋ถ๋ชจ ์ปดํฌ๋ํธ๋ก๋ถํฐ ์ ๋ฌ๋ @ref@๋ฅผ ์์ ์ปดํฌ๋ํธ๊ฐ ๋ฐ์ ์ ์๊ฒ ํด์ค๋ค.@forwardRef@๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ์์ ์ปดํฌ๋ํธ์ @ref@๋ฅผ ์ ๋ฌํ ์ ์๋ค.@ref@๋ DOM ์์์๋ง ๋ถ์ผ ์ ์๋ค.ํ์ง๋ง @forwardRef@๋ฅผ ์ฌ์ฉํ๋ฉด, ๋ถ๋ชจ ์ปดํฌ๋ํธ๊ฐ ..
2024.05.21 -
- [React.js] ๋ถ๋ชจ ์ปดํฌ๋ํธ์์ ์์ ์ปดํฌ๋ํธ๋ก ์์ ๋๊ธฐ๋ ๋ฐฉ๋ฒ
๋ถ๋ชจ ์ปดํฌ๋ํธ์์ ์์ ์ปดํฌ๋ํธ๋ก ์์ ๋๊ธฐ๋ ๋ฐฉ๋ฒ๋ค์ด๊ฐ๋ฉฐ๋ฆฌ์กํธ์์ ๋ถ๋ชจ ์ปดํฌ๋ํธ์์ ์์ ์ปดํฌ๋ํธ๋ก ์์๋ฅผ ๋๊ธฐ๋ ๋ฐฉ๋ฒ์ ์์๋ณด์. ๋ฐฉ๋ฒ๋ถ๋ชจ ์ปดํฌ๋ํธ์์ ์์ ์ปดํฌ๋ํธ๋ก ๋๊ธธ ์์์ ํ์ ์ ์ง์ ํ ์ ์๋๋ฐ, @string@ ํํ๋ก ์ง์ ํด์ฃผ๋ฉด ๋๋ค.์ด๋, @prop@ ์ด๋ฆ์ ์ฒซ ๊ธ์๋ ํญ์ ๋๋ฌธ์์ด์ด์ผ ํ๋ค.App.jsx@ButtonsContainer@ @prop@์ @"menu"@๋ก ์ง์ ํด๋ณด์๋ค.return ( handleSelect("components")} > Components handleSelect("jsx")} > JSX ..
2024.05.14