์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- ๊ตฌ๋ฆํค
- emotion RSC
- ์ฌ์ฉ์ฑ ๊ฐ์
- js
- ์ต์ ๋์ฒด์ด๋
- ๋ฆฌ์กํธ์ฟผ๋ฆฌ suspense
- suspense ๋ณ๋ชฉํ์
- ๋ฐฑ์ค 1339๋ฒ ์๋ฐ์คํฌ๋ฆฝํธ
- suspense react-query
- suspense ๋น๋๊ธฐ
- js ์ค์ฝํ
- ๋ฐฑ์ค 2108 nodejs
- js ๊ฑฐ๋ฆฌ๋๊ธฐ ํ์ธํ๊ธฐ
- ์๋ฐ์คํฌ๋ฆฝํธ ์ค์ฝํ
- app router emotion
- ๋ฐฑ์ค 1339๋ฒ nodejs
- ๋ฐฑ์ค 2108 ์๋ฐ์คํฌ๋ฆฝํธ
- ์๋ฐ์คํฌ๋ฆฝํธ ๋ฌธ์์ด ์์ถ
- next13 emotion
- TypeError: createContext only works in Client Components. Add the "use client" directive at the top of the file to use it. Read more:
- emtion app router
- ํ๋ก๊ทธ๋๋จธ์ค ๋ฌธ์์ด ์์ถ
- ๊ตฌ๋ฆํค ์ฑ๋ฆฐ์ง
- ๊ตฌ๋ฆํค ์ฑ๋ฆฐ์ง ํ๊ณ
- ์นด์นด์ค ์ฝํ
- suspense ๋์์๋ฆฌ
- ๋ฐฑ์ค 1339๋ฒ js
- ํ๋ก๊ทธ๋๋จธ์ค ๊ฑฐ๋ฆฌ๋๊ธฐ ํ์ธํ๊ธฐ
- ์ค์ฝํ
- js ๋ฌธ์์ด ์์ถ
- Today
- Total
๋ชฉ๋ก๐ง๐ป Web/React (10)
Lennon FE
Next13์ app router ๋ฐฉ์์์ ํ์ฌ Emotion์ ๊ณต์์ ์ผ๋ก ์ง์ํด์ฃผ์ง ์๋๋ค.๐ฅฒ ๊ทธ๋ ์ง๋ง Project์์ Emotion lib๋ฅผ ์ฌ์ฉํ๊ณ , css์์ฑ์ ์ฌ์ฉํ๊ณ , app router์ RSC๋ฅผ ์ฌ์ฉํ๊ณ ์ถ์ ์ฌ๋๋ค์ด ์์๊น ๋ด(๋ณธ์ธ ํฌํจ!) ๋ฐฉ๋ฒ์ ์๋ ค์ฃผ๋ คํ๋ค. ๋ค๋ค ์๋ค์ํผ Emotion์ css ์์ฑ์ ์ฌ์ฉํ๋ ค๋ฉด tsconfig.json์ "jsxImportSource": "@emotion/react", ์์ ๊ฐ์ ์์ฑ์ ๋ฃ์ด์ผ ํ๋ค. ๊ทธ๋ฌ๋ฉด ๋ชจ๋ ํ๊ทธ์ css๋ฅผ ๋ฃ์ ์ ์์ด ์๋์ฒ๋ผ ์์ฑํ ์ ์๊ฒ ๋๋ค. import { css } from '@emotion/react'; ๊ทธ๋ ์ง๋ง tsconfig์ "jsxImportSource": "@emotion/react", ์ ์์ฑ์ ๊ฐ์ง..
Next.js๋ฅผ ํฌํจํ React ํ๋ก์ ํธ์์ Cypress๋ก e2e๋ฅผ ๊ตฌํํด ๋ด ์๋ค. ํ๋ก์ ํธ์ Cypress๋ฅผ ์ค์นํด ์ค๋๋ค. $ yarn add cypress --dev or $ npm install cypress --save-dev Package.json์ ๊ฐ์ ์คํฌ๋ฆฝํธ๋ฅผ ์ถ๊ฐํด ์ค๋๋ค. "scripts": { ..., "test": "cypress open", "cy:run": "cypress run" }, ํฐ๋ฏธ๋์์ ๋ช ๋ น์ด๋ฅผ ์์ฑํด ๋ด ์๋ค $ yarn test or $ npm run test ๊ทธ๋ผ ์๋์ ๊ฐ์ ํ๋ก๊ทธ๋จ์ด ์ผ์ง ๊ฒ๋๋ค! ์ฐ๋ฆฌ๋ e2e๋ฅผ ๊ตฌํํ ๊ฒ์ด๋๊น ์ฒซ ๋ฒ์งธ๋ฅผ ์ ํํ๊ณ ํ์ผ์ ์์ฑํด ์ค๋ค๋ ๊ฑฐ์ ๋์ํ๊ณ ๋์ด๊ฐ๋๋ค. ์ ๊ธฐ์ค Electron์ด ํธํด์ ์ ํํ์ฌ Start๋ฅผ ๋๋ฆ ๋..
๋ฆฌ์กํธ๋ฅผ ์ฌ์ฉํด ์ฝ๋๋ฅผ ์์ฑํ๋ค๋ณด๋ฉด ์๋ฒํต์ ๋ฐ ์ปดํฌ๋ํธ ๋ผ์ดํ ์ฌ์ดํด ์ฐจ์ด์ ๋ฐ๋ผ null, undefined๋ฅผ ๋ฐํํด ๊ฐ๋ ์ค๋ฅ๊ฐ ๋ฐ์ํ๊ณค ํ๋ค. ์ด๋ ๊ทธ๋๋ ์น์ ํ๊ฒ ์ค๋ฅ ์ฝ๋๋ก ์๋ ค์ฃผ๊ธฐ์ ํด๊ฒฐํ๊ธด ์ฌ์ธ ์ ์์ง๋ง, ์กด์ฌ ๋๋ ์กด์ฌํ์ง ์๋ ์์์ ๋ฉ์๋๋ค์ ๋ํด ์์ ํ๊ฒ ์ ๊ทผํ ์ ์๋๋ก ๋์์ฃผ๋ ์ต์ ๋ ์ฒด์ด๋ ์ฐ์ฐ์๋ฅผ ํตํด ๋ ์ฝ๊ฒ ํด๊ฒฐํ ์ ์๋ค. ์๋ ์ฝ๋์์ span์์ text๊ฐ์ด ๋ช์ด ๋์ฌ์ง ์์ํด๋ณด์. import React from 'react' const getNonEmptyCategories = (catrgories) => ( categories.filter((category) => category.items > 0); ) // categories = [ {items: 5, id..
๋ค๋ค ๋ฆฌ์กํธ ํ๋ก์ ํธ์์ useState๋ฅผ ์ฐ๋ฉฐ ๋นํฉํ๋ ์ ์ด ์์๊ฑฐ๋ผ ์๊ฐํ๋ค. ๋ฆฌ์กํธ์ useState๋ฅผ ์ฐ๋ค๋ณด๋ฉด ์ฐ๋ฆฌ๊ฐ ์ํ๋ ๋๋ก ๋์ํ์ง ์๋ ๊ฑธ ํ์ธํ ์ ์๋ค. ์๋ ์ฝ๋๋ ์ฒดํฌ๋ฐ์ค๊ฐ ํ๋ ์กด์ฌํ๊ณ ์ฒดํฌํ ๋๋ง๋ค ์ํ toggle ๊ฐ์ด true or false๋ฅผ ๊ฐ์ง๋ ๋ก์ง์ด๋ค. ์ฒดํฌ๋ฐ์ค๋ฅผ ์ฒดํฌํ๋ ๊ฑธ๋ก ์ํ๊ฐ์ ๋ฐ๊พธ๋ ์์๋ฅผ ๋ณด๊ณ ๊ฒฐ๊ณผ๋ฅผ ์์ํด๋ณด์ import React, { useState } from "react"; function App() { const [toggle, setToggle] = useState(false); const onChange = () => { setToggle((toggle) => !toggle); if(toggle) { console.log('toggle์ T..
๊ฒน์น๋ ๊ฒ์ด๋ ๋ง์ด ์ฐ์ด๋ ๋ถ๋ถ์ key: value๋ก ์ ์ํ๊ณ , React์์ ํด๋น ์์๋ฅผ module๋ก ๊ฐ์ ธ์ ์ฌ์ฉํ ์ ์๋ค. /* colors.css */ @value key: value; @value makerBlack: black; @value makerWhite: white; @value makerLightGrey: #e8e7e6; @value makerLightPink: #ffeae8; @value makerGrey: #626262; @value makerGreen: #385461; @value makerPink: pink; @value makerShadow: rgba(217, 217, 217, 1); @value makerColorful: linear-gradient(166deg, rgb..
๋ผ์ฐํ ์ด๋? = ๋คํธ์ํฌ ์์์ url์ ์ด์ฉํ์ ๋ ์ด๋ค ๊ฒฝ๋ก๋ฅผ ์ด์ฉํด์ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์์ฌ ๊ฑด์ง ๊ฒฐ์ ํด์ฃผ๋ ๊ธธ์ ๊ฒฐ์ ํด์ฃผ๋ ๊ฒ = ์ฌ์ฉ์๊ฐ url์ ์์ฒญํ์ ๋ ์ด๋ค ํน์ ํ ํ์ด์ง๋ก ์ฐ๊ฒฐํ ๊ฑด์ง ๊ฒฐ์ ํ๋ ๋งค์ปค๋์ฆ = ์ฌ์ฉ์๊ฐ url์ ์คฌ์ ๋ ์ด๋ค ํ์ด์ง๋ก ์ฐ๊ฒฐํ๊ฑด์ง! SPA์ ๋ฌธ์ ์ ์ฌ์ฉ์๊ฐ ๋ถ๋งํฌํ ์ ์๋ค. ๋ธ๋ผ์ฐ์ ์์์ ๋ค๋ก๊ฐ๊ธฐ, ์์ผ๋ก๊ฐ๊ธฐ์ ๊ฐ์ ๋ค๋น๊ฒ์ด์ ์ด ์ถ๊ฐ๊ฐ ๋์ง ์์ ⇒ ํด๋น ๋ฌธ์ ์ ์ ํด๊ฒฐํ๊ธฐ ์ํด React Router ๋ฑ์ฅ React Router? ์ฌ์ฉ์๊ฐ ์ ๋ ฅํ ์ฃผ์๋ฅผ ๊ฐ์งํ๋ ์ญํ ์ ํ๋ค. import { BrowerRouter, Link, Router, Routes } from 'react-router-dom' ํ๊ทธ๋ก ๊ฐ์ธ์ค๋ค. ํ๊ทธ๋ก path๋ง๋ค ๋ฌด์จ ์ปดํฌ๋ํธ๋ฅผ ๋ณด์ฌ์ค๊ฑด์ง ์..
JSX ๋ฌธ๋ฒ์ด๋? ๋ฆฌ์กํธ์์ ์๊น์๋ฅผ ์ ์ํ ๋, ์ฌ์ฉํ๋ ๋ฌธ๋ฒ์ด๋ค. HTML๊ณผ ์ ์ฌํ๊ฒ ์๊ฒผ์ง๋ง ์ค์ ๋ก๋ JavaScript์ด๋ค! const App = () => { return Hello React! } ์ค์ JavaScript๊ฐ ์๋๋ฐ ๋ธ๋ผ์ฐ์ ๊ฐ ์ด๋ป๊ฒ ์ฝ๋๋ฅผ ํด์ํ๋ ๊ฑธ๊น? ์ฌ๊ธฐ์ Babel์ ๋ํด ์์๋ณด์. Babel์ JSX๋ฅผ ๋ธ๋ผ์ฐ์ ๊ฐ ์ดํดํ ์ ์๋๋ก JavaScript๋ก ๋ณํํด์ค๋ค. ๊ทธ๋ฌ๋ JSX๊ฐ JavaScript๋ก ์ค๋ฅ ์์ด ์ ๋๋ก ๋ณํ๋๋ ค๋ฉด ๊ท์น์ ์ง์ผ์ผ ํ๋ค. 1. ํ๊ทธ๋ ๊ผญ ๋ซํ ์์ด์ผ ํ๋ค. const App = () => { return ( Hello ) } , ๋ฑ ๋ณธ๋ HTML์์ ๋ซํ์๋ ํ๊ทธ๋ JSX์์ ๋ซ๋ ํ๊ทธ๊ฐ ์๋๋ค! ๋น์ฐํ ํ๊ทธ ์ง์ด ๋ง์ง ์์๋ ์ค๋ฅ๊ฐ ๋ฐ์ํ..