React : Libraries ์ถ”์ฒœ

<angeLog/>ยท2024๋…„ 2์›” 26์ผ

REACT

๋ชฉ๋ก ๋ณด๊ธฐ
12/25
post-thumbnail

๐Ÿ’ก์‚ฌ์šฉํ•ด๋ณด๋ฉด์„œ ๊ดœ์ฐฎ์•˜๋˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๊ณ„์† ์ถ”๊ฐ€ํ•˜๋Š” ํฌ์ŠคํŒ…์ž…๋‹ˆ๋‹ค.

๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์“ฐ๋ฉด ๊ดœ์ฐฎ์„ ๊ฒƒ ๊ฐ™๋‹ค!
data๋ฐ”์ธ๋”ฉ์ด ๋๋‚˜๊ณ  ํŽ˜์ด์ง€๋ฅผ ์Šคํƒ€์ผ๋ง์„ ํ•ด๋ณด๊ธฐ๋กœ ํ–ˆ๋‹ค.
์ง์ ‘ ์ฝ”๋“œ๋กœ position์„ ์ฐ์–ด๊ฐ€๋ฉด์„œ ์• ๋‹ˆ๋ฉ”์ด์…˜์„ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•๋„ ์žˆ์ง€๋งŒ, ์‹œ๊ฐ„๋„ ์˜ค๋ž˜ ๊ฑธ๋ฆด ๋ฟ ๋”๋ผ ๊ทธ๋Ÿฐ ๋Šฅ๋ ฅ์€ ์—†๋‹ค! ๊ทธ๋Ÿฌ๋ฏ€๋กœ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํ™œ์šฉํ•ด์„œ ์ข€๋” ๋™์ ์ธ ํšจ๊ณผ๋ฅผ ๋‚ด๋ณด๋Š” ๊ฒƒ์ด ๋ชฉํ‘œ์ด๋‹ค.

React bootstrap

โœจ๋ฆฌ์•กํŠธ๋ถ€ํŠธ์ŠคํŠธ๋žฉ
emotion, react-spinner๋„ ๋ณด์•˜์ง€๋งŒ emotion์€ ์•„์ง ์ดํ•ด๊ฐ€ ์ž˜ ์•ˆ๋ผ๊ณ ... react-spinner๋˜ํ•œ ๋ญ”๊ฐ€ ์„ฑ์— ์•ˆ์ฐจ๋˜ ์™€์ค‘ ๋ฐœ๊ฒฌํ•œ react bootstrap.

spinner ๋ง๊ณ ๋„ ๋‹ค์–‘ํ•œ component๋ฅผ ์ œ๊ณตํ•ด์ฃผ๊ธฐ ๋•Œ๋ฌธ์— ์ž˜ ์‚ฌ์šฉ ํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™๋‹ค.
react bootstrap์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” vanilla bootstrap์ด ์„ค์น˜๋˜์–ด ์žˆ์–ด์•ผํ•œ๋‹ค.

npm install react-bootstrap 
npm install bootstrap

์Šคํ”ผ๋„ˆ๋ถ€ํ„ฐ ๋ฒ„ํŠผ, ๋ชจ๋‹ฌ, ํ…Œ์ด๋ธ”๊นŒ์ง€ ๋‹ค์–‘ํ•œ ์˜ต์…˜๋“ค์ด ๋งŽ์•„์„œ ์˜ˆ์œ ํŽ˜์ด์ง€๋ฅผ ์‰ฝ๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.

Framer Motion

โœจํ”„๋ž˜์ด๋จธ ๋ชจ์…˜
์• ๋‹ˆ๋งค์ด์…˜ ํšจ๊ณผ๋ฅผ ์‰ฝ๊ณ  ๋‹ค์–‘ํ•˜๊ฒŒ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ.
์‚ฌ์šฉ๋ฒ• ๋˜ํ•œ ๊ฐ„๋‹จํ•˜๋‹ค.

npm i framer-motion

๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ธ์Šคํ†จ ํ•œ ๋‹ค์Œ์—, ํ•„์š”ํ•œ ํŽ˜์ด์ง€์— ์ž„ํฌํŠธ ํ•˜๋ฉด ๋œ๋‹ค.

import { motion } from "framer-motion"

HTMLํƒœ๊ทธ ์•ž์— motion์„ ๋ถ™์—ฌ์„œ motion component ํ•˜์—ฌ ์‚ฌ์šฉํ•œ๋‹ค.
์ดˆ๊ธฐ ์ƒํƒœ๋Š” ์†์„ฑinitial๋กœ, ์• ๋‹ˆ๋ฉ”์ด์…˜ ์ƒํƒœ๋Š” ์†์„ฑ animate๋กœ ๊ฐ๊ฐ ๊ฐ์ฒดํ˜•ํƒœ๋กœ ๋„ฃ์–ด์ค€๋‹ค.

//์˜ˆ์‹œ
<motion.h1
  className="mainTt"
  whileInView={{
    opacity: 1,
    rotate: [0, 360],
    transition: { delay: 0.05 },
  }}
  whileHover={{
    scale: 1.1,
    transition: {
    type: 'spring',
    stiffness: 400,
    damping: 10,
    },
  }}
>
  Hello! this is thetititle's portfolio
  <em>.</em>
</motion.h1>

์˜ต์…˜์ด ๋งŽ์€ ๋งŒํผ ๊ผผ๊ผผํžˆ ์‚ดํŽด๋ด์•ผํ•˜์ง€๋งŒ ๊ต‰์žฅํžˆ ๋งˆ์Œ์— ๋“œ๋Š” ํšจ๊ณผ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์—ˆ๋‹ค.

React Device Detect

โœจreact-device-detect
๋ฆฌ์•กํŠธ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๋””๋ฐ”์ด์Šค ์ฒดํฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ.
์‚ฌ์šฉ๋ฐฉ๋ฒ•๋„ ๊ต‰์žฅํžˆ ๊ฐ„ํŽธํ•˜๋‹ค.

import { MobileView, isMobile } from 'react-device-detect';

๋ชจ๋ฐ”์ผ์ธ์ง€ ์ฒดํฌํ•  ์ƒ๊ฐ์ด๋ผ๋ฉด ์œ„์˜ ํ˜•์‹๋Œ€๋กœ ์ž„ํฌํŠธํ•˜๋ฉด ๋œ๋‹ค.
API์˜ Selectors๋ฅผ ์ฐธ๊ณ ํ•˜์—ฌ ๋‹ค์–‘ํ•œ ๋””๋ฐ”์ด์Šค๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์–ด์„œ ์ข‹์•˜๋‹ค.

profile
์ผ๋‹จ ํ•ด๋ณผ๊ฒŒ์š”!โœ๐Ÿป

0๊ฐœ์˜ ๋Œ“๊ธ€