๋ชฉ๋ก2022/03 (46)
whatisthis?
์์ฆ ์ฑ ์ ๊ณต๋ถ์ค์ด๋ค. ์ฑ ์ ์ฐ์ 1ํ๋ ํ ๋ค์, ๋ธ๋ก๊ทธ์ ๋ค์ํ๋ฒ ์ ๋ฆฌํ๋ฉด์ 2ํ๋ ํ๋๊ฒ์ด ๋ชฉํ์ด๋ค. ์ฑ ์ด 1000ํ์ด์ง์ ์ก๋ฐํ๋ ์์ฒญ ๋๊ป๊ณ ํค๋นํ ์ฑ ์ด๋ผ (๋ด์ฉ๋ ๋ ์ด๋ ต๋ค ๐ญ) ์ง๊ธ ํ ์ผ์ฃผ์ผ๋์ ์ ๋ฐ์ ๋ ์ฝ์ ๊ฒ ๊ฐ๋ค. โ๏ธ ๋ฆฌ์กํธ ์ ํ๋ค๊ฐ ๊ฐ์๊ธฐ ์๋ฐ์คํฌ๋ฆฝํธ๋ก ๋์์จ ์ด์ ๋? ๊ฒฐ๊ตญ ์๋ฐ์คํฌ๋ฆฝํธ๋ ๋ด๊ฐ ๋ทฐ๋ฅผ์ฐ๋ , ๋ฆฌ์กํธ๋ฅผ์ฐ๋ , ๋ญ ํ๋ ํ๋ก ํธ์๋ ๊ฐ๋ฐ์๋ก์์ ์๋ช ์ด๋ผ ์๊ฐํ๋ค. ๊ทธ๋ฐ๋ฐ! ๋๋ ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ์๋ฐ๊ฒํฅ๊ธฐ ์์ค์ผ๋ก ๋ฐฐ์ ์๊ณ , ๋ก์ง ์ง๋๊ฒ๋ ๋ฌธ์ ์ง๋ง ์๋ฐ์คํฌ๋ฆฝํธ์ ๋ํด ํ์ฐธ ๋ชจ๋ฅธ๋ค๊ณ ์๊ฐ์ด ๋ค์๋ค. ์ง๊ธ ๋ฆฌ์กํธ๋ฅผ ๊นจ์๊ฑฐ๋ฆฌ๋ฉด์ ๋ฐฐ์ฐ๋๋, ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ๊น๊ฒ ๋ฅ๋ค์ด๋นํด์ ๋ฐฐ์ฐ์๊ณ ์๊ฐํ๋ค. ์์งํ ๋ฆฌ์กํธ๋ ํต์ฌ ๊ฐ๋ ์ด ๋ฑ๋ฑ ๋์์์ด์ (state, props, ์ปดํฌ๋ํธ ๋ฑ) ๊ณต์๋ฌธ์..
Dev Blog whatisthis? ๐ web study & project archive ๐บ https://github.com/thisisyjin mywebproject.tistory.com ๊ฐ๋ฐ ๊ณต๋ถ ๊ฐ๋ฐ ์ฐ์ต ํ๋ก์ ํธ ์คํจ ํธ์ง Naver Blog ๊ธฐ๋ก : ๋ค์ด๋ฒ ๋ธ๋ก๊ทธ ๊ธฐ๋ก :) https://mywebproject.tistory.com blog.naver.com ์ผ์ ์๊ฒฉ์ฆ ๊ณต๋ถ ํ์๋ฉ์ค ๊ณํ Velog thisisyjin (thisisyjin) - velog TIL 22-03-17 React.js Today I Learned ... react.js >๐โโ๏ธReact.js Lecture >๐โMy Dev Blog ๐ ์์ - ๋๋ง์๊ธฐ ๊ฒ์ WordRelay.jsx Hooks ์ด์ฉ์ ๐ก targ..
React.js Today I Learned ... react.js ๐โโ๏ธReact.js Lecture ๐โMy Dev Blog ๐ ์์ - ๋๋ง์๊ธฐ ๊ฒ์ WordRelay.jsx const React = require("react"); const { Component } = React; class WordRelay extends Component { state = { word: "๊ฐ์์ง", value: "", result: "", }; onSubmitForm = e => { e.preventDefault(); if (this.state.value[0] === this.state.word[this.state.word.length - 1]) { this.setState(prevState => ({ res..
React.js ๐ฉ ๋ชฉ์ฐจ - ํด๋์คํ ์ปดํฌ๋ํธ - ํจ์ํ ์ปดํฌ๋ํธ - ๋ฐฐ์ด ์ปดํฌ๋ํธ - ์ปดํฌ๋ํธ์์์ ์ฝ๋ฐฑ๊ณผ ์ด๋ฒคํธ๋ฆฌ์ค๋ ํด๋์คํ ์ปดํฌ๋ํธ ์๋ช ์ฃผ๊ธฐ ๋ฉ์๋์ ์ปดํฌ๋ํธ ๊ตฌ์ฑ์์๋ฅผ ๋ชจ๋ ํฌํจํ๋ ํด๋์คํ ์ปดํฌ๋ํธ. ์ด ๋๊ฐ์ง ์ข ๋ฅ์ ํด๋์ค๋ฅผ ์ฌ์ฉ. - Component - PureComponent 1 / Component ํด๋์ค - props, state, life-cycle method๊ฐ ๋ค์ด์๋ ๊ตฌ์กฐ์ ์ปดํฌ๋ํธ 2 / PureComponenet ํด๋์ค - Component ํด๋์ค๋ฅผ ์์๋ฐ์ ํด๋์ค. - shouldComponentUpdate() ํจ์๋ฅผ ์์ ๋น๊ต๋ฅผ ํ๋๋ก ์ฌ์ ์. ๐ shouldComponentUpdate(nextProps, nextState) ํ๋กํผํฐ๋ฅผ ๋ณ๊ฒฝํ๊ฑฐ๋ setState()๋ฅผ ..
ํ๋ก์ ํธ๋ฅผ ์งํํ๋ค๊ฐ, ๋ชจ๋ฐ์ผ ์น์์ input="file"๋ก ์ด๋ฏธ์ง๋ฅผ ์ ๋ก๋ํด์ ํด๋น ๊ฒ์๊ธ์ ์ ์ฅ๋๋๋ก ๊ตฌํํด์ผ ํ๋ ๊ธฐ๋ฅ์ด ์์๋ค. ๋ฌผ๋ก ์์ง ์ธ๋ถ ์ปดํฌ๋ํธ๋ก ์ชผ๊ฐ๋์ค์ด๋ผ ๊ตฌํ์ ๋ชปํ์ง๋ง, ๋์ถฉ ๋ง๋ณด๊ธฐ๋ก html-js ์คํ์ผ๋ก ์ ๋ ดํ๊ฒ ๊ตฌํํ๋ ์์ ๊ฐ ์๊ธธ๋ ์๋ํด๋ดค๋ค. - ์ฐธ๊ณ : ์๋ ๊ฐ๋จํ๊ฑฐ๋ผ css๋ js๋ ๊ทธ๋ฅ ์ธ๋ผ์ธ์ผ๋ก ํด๋์๋ค. ๐ KEYPOINT ! ... newImage.src = URL.createObjectURL(file); URL.createObjectURL() - Web API | MDN URL.createObjectURL() ์ ์ ๋ฉ์๋๋ ์ฃผ์ด์ง ๊ฐ์ฒด๋ฅผ ๊ฐ๋ฆฌํค๋ URL์ DOMString์ผ๋ก ๋ฐํํฉ๋๋ค. developer.mozilla.org - ๊ฐ์ฒด URL์ ํด์ ํ๋ ค๋ฉด r..
React.js ์ปดํฌ๋ํธ - ๊ธฐ์กด ์น ํ๋ ์์ํฌ = MVC ๋ฐฉ์ (Model, View, Controller) ์ ๋ณด๋ด๋น Model ํ๋ฉด๋ด๋น View ๊ตฌ๋๋ด๋น Controller - ์ฝ๋๊ด๋ฆฌ๋ ํจ์จ์ - ๊ฐ ์์์ ์์กด์ฑ์ด ๋์ ์ฌํ์ฉ ์ด๋ ค์ ๐ก import ๋ฌธ์์ ํ์ผ ์ด๋ฆ ํ์ฅ์๊ฐ ์๋ต๋ ์ด์ - create-react-app์ ์นํฉ module resolution ๊ธฐ๋ฅ ๋๋ฌธ. - ํ์ฅ์๊ฐ ํ์ผ ์ด๋ฆ์ ์๋ ํ์ผ ๋จผ์ ์ํฌํธ - ํ์ฅ์๊ฐ ํ์ผ ์ด๋ฆ์ ์๋ ๊ฒฝ์ฐ - extentions์ ์ ์๋ ํ์ฅ์ ๋ชฉ๋ก์ ๋ณด๊ณ ํ์ธํจ. - ์ง์ ๊ฒฝ๋ก์ ์๋ค๋ฉด - ๊ฐ์ ์ด๋ฆ์ ํด๋๊ฐ ์๋์ง ์ฒดํฌ - ๊ฐ์ ์ด๋ฆ ํด๋๊ฐ ์๋ค๋ฉด index ํ์ผ ๊ฒ์ฌ - ์ปดํฌ๋ํธ ๊ตฌ์ฑ์์ property ์์ -> ํ์ ์ปดํฌ๋ํธ๋ก ์ ๋ฌ๋๋ ์ฝ..
๐ฒ ํฑํํ (Tic Tac Toe) ๊ฒ์ Ref. ์์ต์: React ์์ํ๊ธฐ โ React A JavaScript library for building user interfaces ko.reactjs.org index.html style.css body { font: 14px "Century Gothic", Futura, sans-serif; margin: 20px; } ol, ul { padding-left: 30px; } .board-row:after { clear: both; content: ""; display: table; } .status { margin-bottom: 10px; } .square { background: #fff; border: 1px solid #999; float: lef..
React.js Day 03 React Hooks + WebPack ๐พ PART 1 220315 [TIL] Today I Learned ๐ฏ React.js - (1) React.js Day 03 React Hooks + WebPack 1 / React Hooks ๋ฆฌ์กํธ์์ ์ถ์ฒํ๋ ๊ฒ = Hooks์ ์ฌ์ฉ. Class Component๋ฅผ ์์ ํ๊ณ , ํจ์ํ ํ๋ก๊ทธ๋๋ฐ์ ์ํ Hooks๋ฅผ ๊ถ๊ณ ํจ. ํด๋์ค ์ปดํฌ๋ํธ class Button extends.. mywebproject.tistory.com * ์ง๊ธ๊น์ง์ ์ฝ๋ ๐ webpack.config.js const path = require("path"); module.exports = { name: "wordrelay-setting", mode: "devel..
React.js Day 03 React Hooks + WebPack 1 / React Hooks ๋ฆฌ์กํธ์์ ์ถ์ฒํ๋ ๊ฒ = Hooks์ ์ฌ์ฉ. Class Component๋ฅผ ์์ ํ๊ณ , ํจ์ํ ํ๋ก๊ทธ๋๋ฐ์ ์ํ Hooks๋ฅผ ๊ถ๊ณ ํจ. ํด๋์ค ์ปดํฌ๋ํธ class Button extends React.Component { // ์๋ต render () { return ( ) } ํจ์ํ ์ปดํฌ๋ํธ const Button = () => { // ์๋ต return } ์๋๋ ํจ์ํ ์ปดํฌ๋ํธ๊ฐ ์์๋๋ฐ, ๊ทธ์ ์๋ state๋ ref ๋ฑ์ ํด๋์ค์์๋ง ์ธ ์ ์์๋ค. ๐ก ํจ์ํ์์๋ state๋ ref๋ฅผ ์ธ ์ ์๊ฒ ๋ง๋ ๊ฒ = React Hooks (+ useEffect) useState() React.useState()..
React.js Day 02 (=๋น ํ๊ทธ)์ ์ฌ์ฉ ๋ฆฌ์กํธ์์ ๋จ์ ์ด์๋ ๊ฒ์ด ํญ์ ์ปดํฌ๋ํธ๋ฅผ ๋ก ๊ฐ์ธ์คฌ์ด์ผ ํ๋ค. ๊ทธ๋ฌ๋ฉด, reactDOM์ผ๋ก ๋ ๋๋ง ํ์๋ root>div>์ปดํฌ๋ํธ ์ด๋ฐ์์ผ๋ก ์ธ ๋ฐ ์๋ div๊ฐ ์๊ฒจ๋ฒ๋ฆฌ๊ฒ ๋๋ค. ๋ฐ๋ผ์, ์ด๋ฐ ๋จ์ ์ ๊ฐ์ ํ ๊ฒ์ด ๋ฐ๋ก ๋ก ๊ฐ์ธ์ฃผ๋ ๊ฒ. 1. ์ปดํฌ๋ํธ์ render ๋ถ๋ถ return ( ๐ฏ๊ตฌ๊ตฌ๋จ ๊ฒ์๐ฏ ๐ {this.state.first} ๊ณฑํ๊ธฐ {this.state.second} ๋? ์ ๋ ฅ LOG ๐ {this.state.line} {this.state.result} ); 2. ReactDOM์ render ๋ถ๋ถ ReactDOM.render( , document.querySelector("#root") ); ์ด๋ฐ์์ผ๋ก div#root ํ์ div๋ค์ด ..