์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 |
- ์๋ฐ์คํฌ๋ฆฝํธ
- CSS
- ์ฝ๋ฉํ ์คํธ
- Gatsby
- REACT
- ๋ธ๋ก๊ทธ
- Props
- fetch API
- useRef
- ํ๋ก ํธ์๋
- position
- Flex
- ๋ฐ๋ธ์ฝ์ค
- float
- history api
- ์๊ณ ๋ฆฌ์ฆ
- ๋ฐ๋ธ์ฝ์ค3๊ธฐ
- useEffect
- ํ๋ก๊ทธ๋๋จธ์ค
- Today
- Total
๋ชฉ๋ก๐ Language & CS knowledge (167)
Daehyunii's Dev-blog

JSX๋? ์๋ฐ์คํฌ๋ฆฝํธ์ ํ์ฅ ๋ฌธ๋ฒ์ด๋ฉฐ XML๊ณผ ๋งค์ฐ ์ ์ฌํ๋ค. ์ฐ์ JSX๋ ๋ธ๋ผ์ฐ์ ์์ ์คํ๋๊ธฐ ์ ๋ฒ๋ค๋ง๋๋ ๊ณผ์ ์์ ๋ฐ๋ฒจ์ ํตํด ์ผ๋ฐ ์๋ฐ์คํฌ๋ฆฝํธ ํํ์ ์ฝ๋๋ก ๋ณํ๋๋ค. ๋ค์ ์์ ๋ฅผ ์ดํด๋ณด์. JSX function App() { return ( Hello react ) } ๋ณํ function App() { return React.createElement("div", null, "Hello", React.createElement("b", null, "react")) } ์ด ์ฒ๋ผ JSX๋ฅผ ํตํด์ ์ฐ๋ฆฌ๋ JavaScript๋ก ์์ฑํด์ผ ํ๋ ์ฝ๋๋ค์ ๊ฐ๋ตํ๊ณ ์๊ฐ์ ์ผ๋ก๋ ๋ณด๊ธฐ ์ข๊ฒ ํํํ ์ ์๋ค. ํ ๋ง๋๋ก JSX๋ ๋ณด๊ธฐ ์ฝ๊ณ ์ฐ๋ฆฌ์๊ฒ ์ต์ํ ํํ๋ก ์์ฑ๋๋ค. ๋ํ JSX ๋ฌธ๋ฒ์ ํ์ฉํ๋ฉด ์ปดํฌ๋ํธ..

์ปดํฌ๋ํธ ์คํ์ผ๋ง 1. ์คํ์ผ์ํธ ์ ์ฉ ์ธ๋ถ CSSํ์ผ์ importํ์ฌ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ด๋ค. 2. Inline style ์ ์ฉ ๋์ ์ผ๋ก ์คํ์ผ์ ๊ฒฐ์ ํ๋ ๊ฒฝ์ฐ์ ์์์ ์์ฑ์ผ๋ก style์ ์ฃผ๋ ๋ฐฉ๋ฒ์ด๋ค. 3. CSS in JS ์ ์ฉ ์ฌ๋ฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์๋๋ฐ ๊ฐ์์์๋ emotion์ด๋ผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ค. yarn add @emotion/react @emotion/styled @emotion/styled styled API for emotion. Latest version: 11.10.6, last published: a month ago. Start using @emotion/styled in your project by running `npm i @emotion/styled`. There are..

App.js import { useState } from "react"; import Board from "./components/Board"; import Pagination from "./components/Pagination"; function App() { const [page, setPage] = useState(0); const articles = new Array(100).fill().map((_, i) => { return { id: i, title: `${i}๋ฒ ๊ฒ์๋ฌผ`, }; }); const limit = 6; const offset = page * limit; return ( ); } export default App; Pagination.js import { useState } f..

React๋? 1. React ์๊ฐ ๋ฆฌ์กํธ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ค. ๋ฆฌ์กํธ๋ฅผ ๊ตฌ์ฑํ๋ ๊ธฐ๋ฅ๋ค์ ์ต์ํ์ ๋ ธ๋ ฅ์ผ๋ก ์ต๋์ ํจ์จ์ ๋ด๊ธฐ ์ํจ์ด๋ค. 2. React ํน์ง Reactive Programming์ด๋ค. React๋ ์ํ๋ฅผ ๊ด์ฐฐํ๊ณ ๋ณํ๊ฐ ๋ฐ์ํ ๊ฒฝ์ฐ ์ฐ๊ด๋ ๊ณณ์์ ์ฐ์ฐ์ด ์ํ๋๋ค. MVC์์ ๋ฆฌ์กํธ๋ V๋ง ๊ด๋ฆฌํ๋ค. ์ฌ๊ธฐ์ View๋ ์ปดํฌ๋ํธ์ด๋ค. ์ปดํฌ๋ํธ๋ ์ฌ์ฌ์ฉ์ด ๊ฐ๋ฅํ ๋ ๋ฆฝ์ ์ธ ๊ฐ์ฒด์ด๋ฉฐ ๋ฐํ์ ์์ ์ ์ฌ์ฉ๋๋ค. ์ปดํฌ๋ํธ๋ ํธ๋ฆฌ ๊ตฌ์กฐ๋ก ๋ํ๋ผ ์ ์๋ค. ์ปดํฌ๋ํธ ์กฐํฉ์ผ๋ก View๋ฅผ ๊ตฌ์ฑํ๋ค. Virtual DOM์ด๋ค. ํ์ํ ๋ถ๋ถ๋ง ํ ๋ฒ์ ๋ ๋๋งํ๋ค. ์ฑ๋ฅ๋ณด๋ค๋ ๊ฐ๋ฐ์ ์ฝ๊ฒ ํ๊ธฐ ์ํด ์ฌ์ฉ๋์๋ค. 2. create-react-app, JSX 2.1 create-react-app ์๋ก์ด ๋ฆฌ์กํธ ์ฑ์ ๋ง..

PureComponent shouldComponentUpdate๋ฅผ ๊ตฌํํด ๋์ ์ปดํฌ๋ํธ๋ค. pureComponent์ ์ฒซ ๋ฒ์งธ ๊ธฐ๋ฅ์ state์ ๋ณ๊ฒฝ์ด ์๋ ๊ฒฝ์ฐ์ ์๋์ผ๋ก true, false๋ฅผ ๊ณ์ฐํ์ฌ ๋ฐํํ๋ค. ์ด๋ฅผ ํตํด state์ ๋ณํ๊ฐ ์๋ ๊ฒฝ์ฐ์๋ง ๋ฆฌ๋ ๋๋ง ๋๋๋ก ์ต์ ํ ํ ์ ์๋ค. ๋ค์ ์ฝ๋๋ฅผ ์ดํด๋ณด์. import React, { Component } from "react"; class Test extends Component { state = { counter: 0, }; onClick = () => { this.setState({}); }; render() { return ( ํด๋ฆญ ); } } export default Test; PureComponent๊ฐ ์๋ Component๋ก..

shouldComponentUpdate ๋ผ์ดํ ์ฌ์ดํด ๋ฉ์๋ ๋ ๋๋ง์ state, props์ ๋ณ๊ฒฝ์ด ์๋ ๊ฒฝ์ฐ์๋ง ๋ ๋๋ง ๋ ์ ์๋๋กํ๋ ์ต์ ํ์ ์ ์ฉํ ๋ฉ์๋์ด๋ค. ์๋์ ์ฝ๋๋ฅผ ๋ณด๋ฉด click๋ฒํผ์ด ์๋ ํ๋์ ํ ์คํธ์ฉ ์ปดํฌ๋ํธ์ด๋ค. click ์ด๋ฒคํธ๋ฅผ ๋ฃ์ด์คฌ์ง๋ง click์ ์ฌ๋ฌ๋ฒ ๋๋ฅด๋๋ผ๋ ๊ณ์ํด์ ๋์ผํ๊ฒ ๋น ๊ฐ์ฒด๋ก setStateํ๊ธฐ ๋๋ฌธ์ state๋ ๋ณ๊ฒฝ๋์ง ์๋๋ค. ์ฆ ์ฌ๋ฌ๋ฒ์ click์๋ state๋ ๋ฐ๋๋ ๊ฒ์ด ์๋ค. ๋ฆฌ์กํธ์ ํต์ฌ์ '์ํ๊ฐ ๋ณํํ๋ฉด ์๋กญ๊ฒ ๊ทธ๋ฆฐ๋ค!' ๋ผ๊ณ ๋ณผ ์ ์๋ค. ๋ฆฌ์กํธ์์ ๋ฆฌ๋ ๋๋ง์ด ๋ฐ์ํ๋ ์ด์ ๋ ํฌ๊ฒ 3๊ฐ์ง ์ด๋ค. state๊ฐ ๋ณํ๊ฑฐ๋, props๊ฐ ๋ณํ๊ฑฐ๋, ๋ถ๋ชจ ์ปดํฌ๋ํธ๊ฐ ๋ฆฌ๋ ๋๋ง๋๋ฉด ์์ ์ปดํฌ๋ํธ๋ ๊ฐ์ด ๋ฆฌ๋ ๋๋ง๋๋ ๊ฒฝ์ฐ 3๊ฐ์ง ์ด๋ค. ๊ทธ๋ ๋ค๋ฉด..

์น์ด๋? 'World Wide Web'์ ์ค์๋ง๋ก, ์ธํฐ๋ท ์์์ ๋์ํ๋ ์๋น์ค์ ๋๋ค. ๐์ ๋ 1989๋ 'ํ ๋ฒ๋์ค ๋ฆฌ'์ ์ํด์ ๋ถ์ฌ์ง ์ด๋ฆ์ด ํ์ฌ๊น์ง ์ฌ์ฉ๋๊ณ ์๋ ์น์ ์ ๋ณด๋ค์ด ์๋ก ์ฐ๊ฒฐ๋์ด ์๋ ํํ๊ฐ ์ค์ด ์์ผ ์๋ ๊ฑฐ๋ฏธ์ค ๋ชจ์๊ณผ ์ ์ฌํด ๊ฑฐ๋ฏธ์ค์ ์๋ฏธํ๋ 'Web'์ด๋ผ๋ ๋จ์ด๋ฅผ ๊ทธ๋๋ก ์ฌ์ฉํ๋ค๊ณ ํฉ๋๋ค. ์น์ ์ฌ์ฉ์๋ค์ด ์ ๋ณด๋ฅผ ๋๋๋ ์ ๋ณด์ ๊ณต๊ฐ์ ์ ๊ณตํด ์ค๋๋ค. ์น์ ํ์ดํผํ ์คํธ ๊ตฌ์กฐ๋ฅผ ํ์ฉํด์ ์ธํฐ๋ท์์ ๋ฐฉ๋ํ ์์ ์ ๋ณด๋ฅผ ์๋ก ์ฐ๊ฒฐํด ์ค๋๋ค. ์น์ ํ์ ์ด๋๋ก ์ฌ๋ฌ ๋จ๊ณ๋ฅผ ๊ฑฐ์ณ ๋ฐ์ ํด ์์ต๋๋ค. ๊ฐ์ฅ ์ด๊ธฐ ๋จ๊ณ์ธ ์น 1.0, ๊ทธ๋ฆฌ๊ณ ์ฐ๋ฆฌ๊ฐ ๊ฐ์ฅ ์ต์ํ๊ฒ ์ฌ์ฉํ๊ณ ์๋ ์น2.0 ๊ทธ๋ฆฌ๊ณ ์ด์ ๋ ์น3.0์ผ๋ก ๋์๊ฐ๊ณ ์์ต๋๋ค. (์น ๋ค์ ์๋ ์ซ์๋ ์น์ ๋ฐ์ ๋จ๊ณ๋ฅผ ์๋ฏธํฉ๋๋ค.) ์น 1.0..

๋ณ์ ์ ์ธ์ ์คํ ์์ ๊ณผ ๋ณ์ ํธ์ด์คํ ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ ๋ณ์ ์ ์ธ์ ๋ค์๊ณผ ๊ฐ์ 2๋จ๊ณ์ ๊ฑฐ์ณ ์ํํฉ๋๋ค. ์ ์ธ ๋จ๊ณ : ๋ณ์ ์ด๋ฆ์ ๋ฑ๋ก(์คํ ์ปจํ ์คํธ์ ๋ ์์ปฌ ํ๊ฒฝ)ํด์ ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ ๋ณ์์ ์กด์ฌ๋ฅผ ์๋ฆฝ๋๋ค. ์ด๊ธฐํ ๋จ๊ณ : ๊ฐ์ ์ ์ฅํ๊ธฐ ์ํ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ํ๋ณดํ๊ณ ์๋ฌต์ ์ผ๋ก undefined๋ฅผ ํ ๋นํด ์ด๊ธฐํ ํฉ๋๋ค. (const ์ ์ธ) console.log(score); // undefined var score = 'Hello World' console.log(score); // 'Hello World' var hoisting = '์ ์ธ๋ฌธ์ด ์ค์ฝํ์ ์ ๋๋ก ๋์ด ์ฌ๋ ค์ง ๊ฒ์ฒ๋ผ ๋์ํ๋ ๊ฒ์ ์๋ฐ์คํฌ๋ฆฝํธ๋ง์ ๊ณ ์ ํ ํน์ง์ธ ํธ์ด์คํ ์ด๋ผ๊ณ ํฉ๋๋ค' var ํค์๋๋ก ์ ์ธํ ๋ณ์์ ํน์ง 1. ๋ณ..