Skip to content

devSeung0v0/react_style

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

7 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

react_style

React ํ”„๋กœ์ ํŠธ ๋‚ด์—์„œ์˜ css ์ „์ฒ˜๋ฆฌ๊ธฐ์ธ scss์™€ css-module, styled-component ์‚ฌ์šฉ ์—ฐ์Šต

1๏ธโƒฃ css-module

  • ๋ธŒ๋ผ์šฐ์ €๋กœ ์ปดํŒŒ์ผ๋ง ์‹œ ํด๋ž˜์Šค๋ช…์— ์ž„์˜์˜ ํ•ด์‰ฌ๋ฅผ ๋ถ™์ด๋Š” ๋ฐฉ์‹์œผ๋กœ ์Šคํƒ€์ผ ์ค‘์ฒฉ์„ ๋ง‰์•„์ค€๋‹ค.

  • ๋ฆฌ์•กํŠธ์— ๊ธฐ๋ณธ ์„ธํŒ…๋˜์–ด์žˆ์–ด์„œ ์„ค์น˜ํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค.

  • ๊ธฐ์กด ์ƒํ™ฉ : css ํŒŒ์ผ์„ ๋‹ค๋ฅด๊ฒŒ ์ ์šฉํ–ˆ์ง€๋งŒ ํด๋ž˜์Šค๋ช…์ด ์ค‘๋ณต๋˜์–ด ์Šคํƒ€์ผ ์†์„ฑ์ด ๊ฒน์ณ์จ์ง€๋Š” ๋ฌธ์ œ ๋ฐœ์ƒ ( ๋‚˜๋Š” ์ผ์ผ์ด ํด๋ž˜์Šค๋ช…์„ ๋ฐ”๊ฟ”์ฃผ๋Š” ๋ฐฉ์‹์„ ํƒํ–ˆ์—ˆ๋‹ค. ๐Ÿ˜‚)

  • Browser

๐Ÿ’ก ์‚ฌ์šฉํ•˜๊ธฐ

(1) css ํŒŒ์ผ๋ช… ๋’ค์—

โฌ‡๏ธ .module ์„ ๋ถ™์—ฌ์ค€๋‹ค.

(2) css์„ ์ ์šฉํ•˜๋Š” js ํŒŒ์ผ์— import, className ํ˜•์‹์„ ๋ณ€๊ฒฝํ•ด์ค€๋‹ค.

  • Button1.js, Button2.js

`import styles from'./button1.module.css';` ์—์„œ styles๋Š” ์ž„์˜์˜ ๋ณ€์ˆ˜
  • Browser ํด๋ž˜์Šค๋ช… ๋ฐ”๋€Œ์–ด์„œ ์ปดํŒŒ์ผ ๋˜๋ฏ€๋กœ ๋”์ด์ƒ ์ค‘์ฒฉ์ด ๋˜์ง€ ์•Š๋Š”๋‹ค.



2๏ธโƒฃ styled-component

  • CSS in JS ๊ด€๋ จ ๋ฆฌ์•กํŠธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

โญ๏ธ ์ฐธ๊ณ ์ž๋ฃŒ

๊ณต์‹๋ฌธ์„œ๋Œ€๋กœ ์„ค์น˜ npm install --save styled-components

๐Ÿ’ก ํŠน์ง•

  • ๋ณ€์ˆ˜๋กœ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋งŒ๋“ค์–ด์„œ ๋ฐ”๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
  • css ํŒŒ์ผ์„ ๋”ฐ๋กœ ๋งŒ๋“ค์ง€ ์•Š์•„๋„ ๋˜๋ฏ€๋กœ ํŒŒ์ผ ๊ด€๋ฆฌ๊ฐ€ ์šฉ์ด, but ๊ฐ€๋…์„ฑ์€ ๋–จ์–ด์ง„๋‹ค.
  • ๋งŒ๋“  ์ปดํฌ๋„ŒํŠธ์— ์†์„ฑ์„ ๋‚ด๋ ค์ค„ ์ˆ˜ ์žˆ๋‹ค.

๐Ÿ’ก ์‚ฌ์šฉํ•˜๊ธฐ(1)

๊ธฐ๋ณธ ์‚ฌ์šฉ๋ฒ•์„ ์—ฐ์Šตํ•ด๋ณด์ž.

  • App.js import styled from 'styled-components';

โฌ‡๏ธ SelectionBox ๋ผ๋Š” ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋ณ€์ˆ˜๋กœ ์„ ์–ธ, styled๋œ div๋กœ ๋งŒ๋“ค์–ด์ค€๋‹ค. styled.div`` (๋ฐฑํ‹ฑ ์•ˆ์— ์Šคํƒ€์ผ ์†์„ฑ ๋„ฃ์–ด์ฃผ๊ธฐ)

โฌ‡๏ธ Props ๋ฐ›์•„์™€์„œ ํŠน์ • ์Šคํƒ€์ผ ์†์„ฑ ๊ฐ’์œผ๋กœ ๋‚ด๋ ค์ฃผ๊ธฐ (โญ๏ธ styled-component๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฐ€์žฅ ํฐ ์ด์œ ๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค.)

  • Browser

๐Ÿ’ก ์‚ฌ์šฉํ•˜๊ธฐ(2)

์ด๋ฒˆ์—๋Š” ์†์„ฑ ๊ฐ’์„ ์‚ผํ•ญ์—ฐ์‚ฐ์ž๋กœ ์ฒ˜๋ฆฌํ•ด๋ณด์ž.

  • App.js

โฌ‡๏ธ Circle ์ด๋ผ๋Š” styled.span ๋ฅผ ๋งŒ๋“ค๊ณ , ์ปดํฌ๋„ŒํŠธ๋กœ 4๊ฐœ ์ƒ์„ฑํ•œ๋‹ค. backgroundColor ๋ฅผ prop ๋กœ ์ „๋‹ฌํ•˜๊ณ , ๋งˆ์ง€๋ง‰ Circle ์ปดํฌ๋„ŒํŠธ์—์„œ๋Š” ์ „๋‹ฌํ•˜์ง€ ์•Š์•˜๋‹ค.

background : ${(props) => props.backgroundColor || 'skyblue'} โž” props์— backgroundColor๊ฐ€ ์žˆ๋‹ค๋ฉด ๊ทธ ๊ฐ’์„ background๋กœ ์ง€์ •ํ•˜๊ณ , ์—†์œผ๋ฉด 'skyblue'๋กœ ์ง€์ •ํ•œ๋‹ค. ๋”ฐ๋ผ์„œ, ๋งˆ์ง€๋ง‰ Circle ์ปดํฌ๋„ŒํŠธ๋Š” background : 'skyblue'๊ฐ€ ์ „๋‹ฌ๋œ๋‹ค.

  • Browser

  • App.js

โฌ‡๏ธ ๋‘๋ฒˆ์งธ circle ์—๋งŒ box ๋ผ๋Š” props ๋‚ด๋ ค์ฃผ๊ณ , ์ด๋ฅผ styled ์— ์ „๋‹ฌ

<Circle backgroundColor = 'powderblue'/>
 <Circle backgroundColor = 'deepskyblue' box />
 <Circle backgroundColor = 'steelblue'/>
 <Circle />
  • Box ๋ผ๋Š” props๊ฐ€ ์žˆ์œผ๋ฉด css`` ์˜ ํ˜•ํƒœ๋กœ css ์†์„ฑ ์ ์šฉ

  • styled-components ์—์„œ css ๋„ ์ž„ํฌํŠธ ํ•ด์ค˜์•ผํ•จ import styled, { css } from 'styled-components';

* Browser

About

๐Ÿ‘ฉ๐Ÿปโ€๐Ÿ’ป sass, css module, styled component ์‚ฌ์šฉ ์—ฐ์Šต

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published