๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

FA/React

(16)
20221001 React Hooks - useRef ๋ณ€์ˆ˜๊ด€๋ฆฌ, DOM ์š”์†Œ ์ ‘๊ทผ Hook์˜ ๊ทœ์น™ React ํ•จ์ˆ˜ ๊ตฌ์„ฑ ์š”์†Œ ๋‚ด์—์„œ๋งŒ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ์Œ(๋ฐ˜๋“œ์‹œ Functional Component ์•ˆ์—์„œ ์‚ฌ์šฉํ•ด์•ผ ํ•จ) ๊ตฌ์„ฑ ์š”์†Œ์˜ ์ตœ์ƒ์œ„์—์„œ๋งŒ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ์Œ ์กฐ๊ฑด๋ฌธ, ๋ฐ˜๋ณต๋ฌธ ์•ˆ์—์„œ ๋ชป ์”€ useRef ๋ Œ๋”๋ง ๊ฐ„์— ๊ฐ’์„ ์œ ์ง€ ์—…๋ฐ์ดํŠธ ์‹œ ๋‹ค์‹œ ๋ Œ๋”๋ง๋˜์ง€ ์•Š๋Š” ๋ณ€๊ฒฝ ๊ฐ€๋Šฅํ•œ ๊ฐ’์„ ์ €์žฅํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ DOM ์š”์†Œ์— ์ง์ ‘ ์•ก์„ธ์Šคํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ //์ƒ์„ฑํ•˜๊ณ  DOM ๋…ธ๋“œ์— ์—ฐ๊ฒฐํ•˜๊ธฐ const ref = useRef(); // ... return ๋ ˆํ”„๋ ˆํ”„; //DOM ๋…ธ๋“œ ์ฐธ์กฐํ•˜๊ธฐ const node = ref.current; if (node) { // node๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ฝ”๋“œ } ๋ณ€ํ™”๋Š” ๊ฐ์ง€ํ•ด์•ผ ๋˜์ง€๋งŒ, ๊ทธ ๋ณ€ํ™”๊ฐ€ ๋ Œ๋”๋ง์„ ๋ฐœ์ƒ์‹œํ‚ค๋ฉด ์•ˆ๋˜๋Š” ๊ฐ’์„ ๋‹ค๋ฃฐ ๋•Œ ํŽธ๋ฆฌ import { useState, useE..
20220928 React์—์„œ ์ธ์Šคํƒ€ ์Šคํ† ๋ฆฌ์ฒ˜๋Ÿผ ํ•˜๊ธฐ react-insta-stories mohitk05.github.io ์ธ์Šคํƒ€์Šคํ† ๋ฆฌ์ฒ˜๋Ÿผ ํ‘œํ˜„๊ฐ€๋Šฅํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ 1. ์„ค์น˜ yarn add react-insta-stories GitHub - mohitk05/react-insta-stories: A React component for Instagram like stories A React component for Instagram like stories. Contribute to mohitk05/react-insta-stories development by creating an account on GitHub. github.com import Stories from "react-insta-stories"; const initialStories = [ //์ด๊ฑธ ..
20220927 React์—์„œ sweetalert2 ์‚ฌ์šฉํ•˜๊ธฐ 1. ์„ค์น˜ npm install --save sweetalert2 sweetalert2-react-content 2. import ํ•ด์ฃผ๊ธฐ import Swal from "sweetalert2"; 3. const๋กœ ์„ ์–ธ const deleteAlert = () => { Swal.fire({ title: "์ผ์ •์‚ญ์ œ", text: "์ •๋ง๋กœ ์‚ญ์ œํ•˜์‹œ๊ฒ ์–ด์š”?", //๋‚œ ์ด๋ฏธ์ง€ ์ €์žฅํ•ด์„œ ์‚ฌ์šฉํ–ˆ์ง€๋งŒ, url๋กœ ๋ถˆ๋Ÿฌ์˜ฌ์ˆ˜๋„์žˆ์Œ/์ด๋ฏธ์ง€ ํฌ๊ธฐ ์ง€์ • %๋ฐ px ๋“ฑ ์‚ฌ์šฉ์•ˆ๋จ imageUrl: calendarIcon, imageWidth: 50, imageHeight: 50, //์ทจ์†Œ๋ฒ„ํŠผ ํ‘œ์‹œ ๋ฐ ๋ฒ„ํŠผ ์ƒ‰์ƒ ํ…์ŠคํŠธ showCancelButton: true, confirmButtonColor: "#47AFDB", cancelBut..
22020926 React Hooks - useState, useEffect Hook์€ class๋ฅผ ์ž‘์„ฑํ•˜์ง€ ์•Š๊ณ ๋„ state๋“ฑ ๋‹ค๋ฅธ React์˜ ๊ธฐ๋Šฅ๋“ค์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค. Hook์˜ ๊ทœ์น™ React ํ•จ์ˆ˜ ๊ตฌ์„ฑ ์š”์†Œ ๋‚ด์—์„œ๋งŒ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ์Œ(๋ฐ˜๋“œ์‹œ Functional Component ์•ˆ์—์„œ ์‚ฌ์šฉํ•ด์•ผ ํ•จ) ๊ตฌ์„ฑ ์š”์†Œ์˜ ์ตœ์ƒ์œ„์—์„œ๋งŒ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ์Œ ์กฐ๊ฑด๋ฌธ, ๋ฐ˜๋ณต๋ฌธ ์•ˆ์—์„œ ๋ชป ์”€ useState State: ์ปดํฌ๋„ŒํŠธ์˜ ์ƒํƒœ //State ์‚ฌ์šฉํ•˜๊ธฐ const [state, setState] = useState(initialState); //์ฝœ๋ฐฑ์œผ๋กœ ์ดˆ๊นƒ๊ฐ’ ์ง€์ •ํ•˜๊ธฐ //์ดˆ๊นƒ๊ฐ’์„ ๊ณ„์‚ฐํ•˜๋Š” ์ฝ”๋“œ๊ฐ€ ๋ณต์žกํ•œ ๊ฒฝ์šฐ์— ํ™œ์šฉ const [state, setState] = useState(() => { // ... return initialState; }); //State ๋ณ€๊ฒฝ setState..
20220924 React์—์„œ Dark๋ชจ๋“œ ์ ์šฉํ•˜๊ธฐ Dark ๋ชจ๋“œ๋ฅผ ์ ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์—๋Š” ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์ด ์žˆ๋Š”๋ฐ, App.js์—์„œ useState๋ฅผ ์‚ฌ์šฉํ•ด์„œ css, scss๋กœ ์ ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ• 1. ์ „์—ญ์—์„œ ์‚ฌ์šฉ๋˜์–ด์•ผ ๋˜๊ธฐ ๋•Œ๋ฌธ์— App.js์— ์ž‘์„ฑํ•˜๊ธฐ - useState ์‚ฌ์šฉ import React, { useState } from "react"; import styled from "styled-components"; import "./app.scss"; function App() { const [dark, setDark] = useState(false); return ( { setDark(!dark); }} > ๋‹คํฌ๋ชจ๋“œ ); } export default App; 2. app.css์— ๋‹คํฌ๋ชจ๋“œ์ผ๋•Œ css ์ ์šฉํ•˜๊ธฐ .App { background-color:..
220919 React ํƒ€์ดํ‹€, ์•„์ด์ฝ˜ ๋ฐ”๊พธ๋Š” ๋ฐฉ๋ฒ• public ํŒŒ์ผ์— index.htmlํŒŒ์ผ์—์„œ ๋ฐ”๊ฟ”์ฃผ๊ธฐ https://www.favicon-generator.org/ Favicon & App Icon Generator Upload an image (PNG to ICO, JPG to ICO, GIF to ICO) and convert it to a Windows favicon (.ico) and App Icons. Learn more about favicons. www.favicon-generator.org ์—ฌ๊ธฐ์„œ ์•„์ดํฐ+ ์•ˆ๋“œ๋กœ์ด๋“œ ๋ชจ๋“  ์•„์ด์ฝ˜ ๋Œ€์‘๊ฐ€๋Šฅํ•œ ์•„์ด์ฝ˜ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Œ 1. ํŒŒ์ผ์„ ํƒํ•ด์„œ > Favicon ๋งŒ๋“ค๊ธฐํ•˜๊ณ  2. ๋„ค๋ชจ์นธ์•ˆ์— ๋‚˜์˜ค๋Š” ๊ฒƒ๋“ค ํ—ค๋“œ์•ˆ์— ์ถ”๊ฐ€ํ•˜๊ณ  Download the generated favicon ๋ˆŒ๋Ÿฌ์„œ ๋‹ค์šด๋กœ๋“œํ•˜๊ณ  3. pu..
220917 ๋ฐฐ๊ฒฝ์—์„œ ๋žœ๋ค์œผ๋กœ ์ด๋ฏธ์ง€ ๋‚˜์˜ค๊ฒŒ ํ•˜๊ธฐ //๋žœ๋ค์œผ๋กœ ๋Œ๋ฆด ์ด๋ฏธ์ง€ ๊ฐ€์ ธ์˜ค๊ธฐ import img1 from "../../asset/assetLogin/img1.png"; import img2 from "../../asset/assetLogin/img2.png"; import img3 from "../../asset/assetLogin/img3.png"; //backgroundArr๋กœ ๋ฐฐ์—ด ๋งŒ๋“ค์–ด์ฃผ๊ธฐ const backgroundArr = [img1, img2, img3] //Math๋กœ ๋žœ๋ค ํ•จ์ˆ˜ ๋งŒ๋“ค์–ด์ฃผ๊ธฐ const randomIndex = Math.floor(Math.random() * backgroundArr.length); const backgroundImg = backgroundArr[randomIndex]; //๋ฆฌํ„ด์—์„œ return ( ..
React์˜ JSX / Javascript์™€ ๋‹ค๋ฅธ ์  / JSX ๊ทœ์น™ JSX (JavaScript XML) Javascript์— XML์„ ์ถ”๊ฐ€ํ•œ ํ™•์žฅ ๋ฌธ๋ฒ• XML(eXtensible Markup Language)์€ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ณ  ์ „์†กํ•˜๊ธฐ ์œ„ํ•œ ์†Œํ”„ํŠธ์›จ์–ด ๋ฐ ํ•˜๋“œ์›จ์–ด ๋…๋ฆฝ์ ์ธ ๋„๊ตฌ JS์™€ JSX๋Š” ์–ด๋–ป๊ฒŒ ๋‹ค๋ฅธ๊ฐ€์š”? JS์™€ JSX๋Š” ๋‘˜ ๋‹ค ํ˜ธํ™˜ ๊ฐ€๋Šฅํ•˜์ง€๋งŒ ์ฐจ์ด์ ์€ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ์ƒ์„ฑ๋˜๋Š” ๋ฐฉ์‹๊ณผ ๊ธฐ๋Šฅ์ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ๋ถ„ํ• ๋˜๋Š” ๋ฐฉ์‹์— ์žˆ์Šต๋‹ˆ๋‹ค. JS์˜ ๊ฒฝ์šฐ ๊ฐ„๋‹จํ•œ HTML์ด ๋จผ์ € ์ž‘์„ฑ๋˜๊ณ  ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์Šคํฌ๋ฆฝํŠธ ํƒœ๊ทธ ๋‚ด์— JS๊ฐ€ ์ž‘์„ฑ๋ฉ๋‹ˆ๋‹ค. Fruit List Orange ๊ทธ๋Ÿฐ ๋‹ค์Œ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๋Š” JavaScript๊ฐ€ ์ถ”๊ฐ€๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ React์˜ ์œ ์‚ฌํ•œ JSX ์ฝ”๋“œ๋Š” ๊ณ ์ • HTML ํŒŒ์ผ๋กœ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ HTML๊ณผ ์œ ์‚ฌํ•˜์ง€๋งŒ JSX์ธ ์ฝ”๋“œ๊ฐ€ ์ž‘์„ฑ๋ฉ๋‹ˆ๋‹ค. fu..