Codingbear
@codingbeer
Reviews Written
13
Average Rating
3.9
Posts
Q&A
์ต์ ํ ๊ด๋ จ ์ง๋ฌธ์์ต๋๋ค (useMemo ๋ฑ)
๊ณต์ ๋ฌธ์๋ฅผ ํ์ธํด ๋ณด์ธ์. https://ko.react.dev/learn/react-compiler/installation์ฃผ์ํ ์ ์ ๋ํด ๋์ ์์ต๋๋ค.Babel ํ๋ฌ๊ทธ์ธ ํ์ดํ๋ผ์ธ์์ ๊ฐ์ฅ ๋จผ์ ์คํ๋์ด์ผ ํฉ๋๋ค.SWC ํ๊ฒฝ์์ React Compiler ๊ฐ ์ ์๋ํ์ง ์์ ์ ์์ผ๋ ์ฃผ์ESLint ๊ท์น ์ ์ง์ผ์ผ ์๋ ๋ฉ๋ชจ์ด์ ์ด์ ์ด ์ ์๋ํฉ๋๋ค.ํน์ ์ปดํฌ๋ํธ์์ ๋ฌธ์ ๋ฐ์ ์ ์ ์ธํ๋ ค๋ฉด "use no memo" ์ง์์ด๋ฅผ ์ฌ์ฉํฉ๋๋ค.
- 0
- 3
- 67
Q&A
state ๊ด๋ฆฌ์ ๋ํ ์ ๋ฆฌ
ํด๋น ์ปดํฌ๋ํธ ๋ด๋ถ์์๋ง ์ฐ์ด๋ state ์ด๋ฉด ์ปดํฌ๋ํธ ๋ด๋ถ์์ useState, useReducer๋ฅผ ์ฌ์ฉํฉ๋๋ค.๋ถ๋ชจ-์์ ๊ฐ ๊ฐ๋จํ ์ ๋ฌ์ด๋ผ๋ฉด props๋ก ์ ๋ฌํฉ๋๋ค.์์ ๊ฐ์ ์ํ ๊ณต์ ์ด๋ฉด ๋ถ๋ชจ ์ปดํฌ๋ํธ์ ์ํ๋ฅผ ๋์ด ์ฌ๋ฆฝ๋๋ค(Lifting State Up)๊น์ ๊ณ์ธต ๊ฐ์ ์ ๋ฌ(props drilling)์ด๋ผ๋ฉด Context API๋ฅผ ์ฌ์ฉํฉ๋๋ค.๋ณต์กํ ์ ์ญ ์ํ ๋ฐ ๋น๋๊ธฐ ์ฒ๋ฆฌ ๋ฑ์ ์ํ ๊ด๋ฆฌ๊ฐ ํ์ํ๋ค๋ฉด TanStack Query, Zustand, Redux๋ฑ์ ์ํ ๊ด๋ฆฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํฉ๋๋ค.
- 0
- 3
- 60
Q&A
๊ฐ๋ฐ์๋๊ตฌ์์ components ๊ฐ ์๋ณด์ ๋๋ค.
๋ฆฌ์กํธ ์ ํ๋ฆฌ์ผ์ด์ ์ ์คํํ๊ณ ์์ ๋ components ํญ์ด ํ์๋๋ ์ง๋ฅผ ํ์ธํด ๋ณด์ธ์.ํ์ฌ ํ๋ฉด์ด ๋ฆฌ์กํธ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์๋๋ฉด components ํญ์ด ํ์๋์ง ์์ต๋๋ค.ํ์ฅ ํ๋ก๊ทธ๋จ ๊ด๋ฆฌ(chrome://extensions) ์์ ํด๋น React Developer Tools ๊ฐ ํ์ฑํ ๋์ด ์๋ ์ง๋ฅผ ํ์ธํด ๋ณด์ธ์.
- 0
- 3
- 53
Q&A
[(2.4) Shadcn/ui๋ฅผ ์๊ฐํฉ๋๋ค] ๊ฐ์ Shadcn ์ธํ ๊ด๋ จ ์ง๋ฌธ ์์ต๋๋ค.
shadcn/ui ๋ฅผ ์ค์นํ๊ธฐ ์ ์ ๋จผ์ tailwindcss ์ค์น์ path alias ํจ์ค๋ฅผ ์ค์ ํด์ผ ํฉ๋๋ค. 1. Vite ์ tailwindcss ์ค์นnpm install tailwindcss @tailwindcss/viteVite + React + Typescript ํ๊ฒฝ์ Path Alias ์ค์ tsconfig.ts ์ tsconfig.app.json ์์ { // ... /* ํ ํ๋ฆฟ ์ฝ๋์ ์ถ๊ฐ๋ ๋ถ๋ถ : Path Alias */ "compilerOptions": { "baseUrl": ".", "paths": { "@/*": ["./src/*"] } } }vite์ tsconfig ์ alias๋ฅผ ๋ฐ์ํ๊ธฐ ์ํด vite-tsconfig-paths ํ๋ฌ๊ทธ์ธ์ ์ค์นํฉ๋๋ค.npm install -D vite-tsconfig-pathsvite.config.ts ์ vite-tsconfig-path ํ๋ก๊ทธ์ธ์ ์ถ๊ฐ ์ค์ ํฉ๋๋ค.import { defineConfig } from 'vite'; import react from '@vitejs/plugin-react-swc'; import tsconfigPaths from 'vite-tsconfig-paths'; import tailwindcss from '@tailwindcss/vite'; // https://vitejs.dev/config/ export default defineConfig({ plugins: [react(), tailwindcss(), tsconfigPaths()], }); ์ ์ฌ์ ์ค์ ์ ๋ง์น๊ณ shadcn/ui ๋ฅผ ์ค์นํ๋ฉด ๋ฉ๋๋ค.npx shadcn@latest init -t vite โ๏ธ Select a component libary > Radix โ๏ธ Which preset would you like to use? > Nova
- 0
- 3
- 96
Q&A
ํ๋ก๋ฐ์ด๋ ์ปดํฌ๋ํธ์ ์์น๋ ์ด๋ค ๊ธฐ์ค์ธ๊ฐ์?
TodoStateContext์ Provider ๊ฐ ์์์์ ๋จผ์ state ๋ฅผ ์ ๊ณตํ๊ณ ,TodoDispatchContext ์ Provider ๊ฐ dispatch ๋ฅผ ์ ๊ณตํด์ผ dispatch๊ฐ ์ ๊ณต๋ state๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋์ํ ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค. Context ์ Provider๋ ํธ๋ฆฌ ๊ณ์ธต ๊ตฌ์กฐ๋ก ๋์ํ๊ธฐ ๋๋ฌธ์ ํ์ Provider ๋ ์์ Provider๊ฐ ์ ๊ณตํ๋ ๊ฐ์ ์ฌ์ฉํ ์ ์์ง๋ง, ๊ทธ ๋ฐ๋๋ก ๋ถ๊ฐ๋ฅ ํ ์ ์์ต๋๋ค. ๋ง์ฝ TodoDispatchContext.Provider ๊ฐ ์์์ ์กด์ฌํ ๋ค๋ฉด ํ์์ ์๋ state ๊ฐ ์ค๋น๋์ง ์์ ์ํ์์ ์ฐธ์กฐํ ์ ์๋ ์ํ๊ฐ ๋ฉ๋๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ๋ฐ์ดํฐ ํ๋ฆ์ ๋ณด์ฅ์ ์ํด state -> dispatch -> state ๊ฐฑ์ -> state ๊ตฌ๋ ์ปดํฌ๋ ๋ฆฌ๋ ๋๋ง ํ๋ฆ ๊ตฌ์กฐ๋ก ํ๋ก๋ฐ์ด๋๋ฅผ ์ ๊ณตํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
- 1
- 3
- 63
Q&A
select a variant ์ ํ์์ javascript์ javascript+react compiler ์ค ๋ฌด์์ ์ ํํด์ผํ๋์? com
๊ทธ๋ฅ JavaScript ๋ ๊ธฐ์กด Babel ์ปดํ์ผ๋ฌ ์ฌ์ฉํ๋ ๋ฆฌ์กํธ ํ๋ก์ ํธ ํ๊ฒฝ์ด๊ณ ์ค๋ ๊ธฐ๊ฐ ์ฌ์ฉํ์ฌ ์์ ์ฑ์ด ๋๊ณ ๋ชจ๋ JSX/JS ๋ฌธ๋ฒ์ ์ง์ ํฉ๋๋ค. ํ์ง๋ง ๋น๋ ์๋์ HMR ๋ฐ์ ์๋๊ฐ ๋ค๋ฅธ ํ๊ฒฝ์ ๋นํด ๋๋ฆฝ๋๋ค.SWC (Speedy Web Compiler) ํ๊ฒฝ์ ์ปดํ์ผ๋ฌ๊ฐ Rust ์ธ์ด๋ก ๋ง๋ค์ด ์ ธ์ ๊ธฐ์กด Babel ํ๊ฒฝ๋ณด๋ค ๋น๋, HMR ๊ฐ๋ฐ ์๋๊ฐ ํจ์ฌ ๋น ๋ฆ ๋๋ค.๊ทธ๋ฆฌ๊ณ React 19 ๋ถํฐ ์ ์ ๋์ ๋ React Compiler ๋ ๋ ๋๋ง ์ต์ ํ๋ฅผ ์๋ํ ํ๋ ๋๊ตฌ์ ๋๋ค.๊ธฐ์กด์ ๊ฐ๋ฐ์๊ฐ ์ผ์ผ์ด ์์ฑํ๋ useMemo, useCallback, React.memo ๋ฅผ ์ปดํ์ผ๋ฌ๊ฐ ์์์ ์๋์ผ๋ก ์ ์ฉํ์ฌ ๋ถํ์ํ ์ฌ๋ ๋๋ง์ ๋ง์ต๋๋ค. ์ ๊ฐ ์ถ์ฒํ๋ ์ปดํ์ผ๋ฌ ํ๊ฒฝ์ ๊ธฐ์กด Babel์ธ javascript ๋ javscript +SWC ๋ฅผ ์ถ์ฒํ๊ตฌ์.๋น ๋ฅธ ๋น๋์ ๋ฐ์์ ๋ณด๋ ค๋ฉด SWC ์ถ์ฒํฉ๋๋ค.
- 0
- 2
- 81
Q&A
zustand ์ฌ์ดํธ ์ด์ํด์!! ์น๋ธ๋ผ์ฐ์ ์์ ์๋ต์์ ๋ฐ์
(์ฌ์ง)ํด๊ฒฐ๋๋ค ํ๋ค์..^^
- 0
- 2
- 63
Q&A
onMouseEnter ๊ด๋ จ ๋ฌธ์ ๋๋ฆฝ๋๋ค
ํน์ ํฌ๋กฌ์์ ๊ฐ๋ฐ์ ๋๊ตฌ์ ๊ธฐ๊ธฐํด๋ฐ์ ํ(Ctrl + Shift + M)์ผ๋ก ๋ชจ๋ฐ์ผ ์ํ๋ก ํฐ์น๋ง ๋๊ณ ์์ง ์์ ์ง ํ์ธํด ๋ณด์ธ์.
- 0
- 3
- 70
Q&A
ํ ์ผ ๊ด๋ฆฌ ์ฑ(๋ฉ๋ชจ์ด์ ์ด์ )
ํด๋น ์ฝ๋์์ ๋ฌธ์ ๊ฐ ์๋๋ผ todoList ๋ฅผ map์ผ๋ก ๋๋ฆด ๋ key ๊ฐ์ด ์ค๋ณต๋๋ค๋ ๋ฉ์ธ์ง์ด๋๋ฐ๋ณต๋๋ ์ปดํฌ๋ํธ ์์์ key ํ๋กญ์ค๋ฅผ ์ด๋ป๊ฒ ์ฃผ์๋์ง ํ์ธํด ๋ด์ผ ํฉ๋๋ค.// ์๋์ ๊ฐ์ ์ฝ๋ ๋ด์์ key์ ํ ๋นํ ๊ฐ์ด ์ค๋ณต๋๋ ์ง๋ฅผ ํ์ธํด ๋ณด์ธ์. {todos.map((todo, index) => ( {todo} ))}
- 0
- 2
- 70
Q&A
๊ฐ์์๋ฃ
webstoryboy ๋์ ๊นํ๋ธ์ ๋ฐฉ๋ฌธํ์ฌ ์์ค์ฝ๋์์ ๋ถ๋ถํ์๋ฉด ๋ฉ๋๋ค.๊นํ๋ธ ์ฃผ์๋ ๊ฐ์ ์๋ด ํ์ด์ง์ ์์ต๋๋ค.
- 0
- 1
- 42




