[React] style Prop 사용하여 Inline(인라인)으로 css 적용하기

2025. 4. 23. 13:36·Programming/React
728x90
반응형

이 글은 Udemy의 【한글자막】 React 완벽 가이드 2025 with React Router & Redux 를 수강하고 정리한 내용입니다.

style Prop을 사용해서 CSS를 자바스크립트 객체로 작성하여 JSX에서 스타일을 적용할 수 있습니다. 이 방법을 통해 간단한 스타일링이나, 동적인 스타일 변경을 할 때 사용 가능 합니다.

style Prop 기본 사용법

  1. CSS 속성 이름은 camelCase로 작성
  2. 값은 문자열 또는 숫자로 작성
function App() {

  return (
    <div>
      <button 
        style={{
          backgroundColor: 'red',  // 고정된 색상
          color: 'white',
          padding: '10px 20px',
          border: 'none',
          cursor: 'pointer'
        }} 
      >
        Click me!
      </button>
    </div>
  );
}

export default App;

  1. 동적 스타일링 가능
import React, { useState } from 'react';

function App() {
  // useState 훅을 사용하여 isClicked 상태를 정의합니다. 초기 값은 false입니다.
  const [isClicked, setIsClicked] = useState(false);

  // 버튼 클릭 시 호출되는 함수입니다. 상태를 반전시켜 isClicked 값을 변경합니다.
  const handleClick = () => {
    setIsClicked(prev => !prev); // 이전 상태의 반대로 값을 변경합니다.
  };

  // 버튼 스타일을 동적으로 생성합니다. isClicked 상태에 따라 배경색이 바뀝니다.
  const buttonStyle = {
    backgroundColor: isClicked ? 'green' : 'red', // 상태에 따라 배경색을 green 또는 red로 설정
    color: 'white', 
    padding: '10px 20px',
    border: 'none', 
    cursor: 'pointer'
  };

  return (
    <div>
      {/* label 태그는 버튼을 설명하는 텍스트를 포함합니다. 
           isClicked 상태에 따라 'clicked' 클래스를 동적으로 추가 */}
      <label className={`label ${isClicked ? 'clicked' : ''}`}>Button</label>

      {/* 버튼은 style prop을 사용하여 동적으로 스타일을 적용하고, 
           클릭 시 handleClick 함수가 호출되어 isClicked 상태가 변경됩니다. */}
      <button style={buttonStyle} onClick={handleClick}>
        {/* 버튼 텍스트는 isClicked 상태에 따라 'Clicked' 또는 'Click me!'로 변경 */}
        {isClicked ? 'Clicked' : 'Click me!'}
      </button>
    </div>
  );
}

export default App;

style Prop 사용 시 장점

  1. 컴포넌트 내에서 간편한 스타일링
  2. 동적 스타일 적용
  3. 외부 라이브러리 의존성 없음

style Prop 사용 시 단점

  1. 스타일 재사용 어려움
  2. 성능 이슈
    • 매번 새로운 스타일 객체가 생성되어 리렌더링 성능에 영향을 미칠 수 있다.
  3. 복잡한 스타일링에 한계
  4. 스타일 객채와 jsx의 상태와 강한 의존성

 

 

도움이 되셨다면 ❤️ 좋아요와 댓글로 피드백 주세요!

궁금한 점이 있다면 언제든지 질문 환영입니다 😄

지금까지 읽어주셔서 감사합니다!

반응형

'Programming > React' 카테고리의 다른 글

[React] Styled Components 사용하기  (0) 2025.04.23
[React] CSS Module 사용하기  (0) 2025.04.23
[React] 커스텀 훅(Custom Hook)  (0) 2025.04.22
[React] HTTP 통신 : fetch로 데이터 요청하고 로딩/에러 처리까지  (0) 2025.04.22
[React] 리액트 클래스 컴포넌트, 왜 아직도 알아야 할까?  (1) 2025.04.18
'Programming/React' 카테고리의 다른 글
  • [React] Styled Components 사용하기
  • [React] CSS Module 사용하기
  • [React] 커스텀 훅(Custom Hook)
  • [React] HTTP 통신 : fetch로 데이터 요청하고 로딩/에러 처리까지
제가안난데여♪(´ε`*)
제가안난데여♪(´ε`*)
기억의 유한함을 기록의 무한함으로 ✍️ 예비 개발자가 꿈꾸는 공간 여기는 안나의 개발 블로그 💻
  • 제가안난데여♪(´ε`*)
    안나의 전두엽 어딘가 🧠
    제가안난데여♪(´ε`*)
    기억의 유한함을 기록의 무한함으로 ✍️ 예비 개발자가 꿈꾸는 공간 여기는 안나의 개발 블로그 💻
  • 전체
    오늘
    어제
    • 분류 전체보기 (128)
      • 간단하게 한스푼🥄 (1)
      • Programming (56)
        • Spring (16)
        • Vue.js (6)
        • Deep Learning (3)
        • DataBase (5)
        • React (26)
      • DevOps (21)
        • Docker (12)
        • Linux (4)
      • Algorithm (46)
        • 알고리즘 정리 (5)
        • 자료구조 (0)
        • PS - 백준 (28)
        • 99클럽 코테 스터디 (13)
      • Project (0)
        • CampFire (0)
      • 안나의 취뽀일기 (˵ •̀ ᴗ - ˵ ) ✧ (4)
        • SSAFY_9기 (2)
        • SW 부트캠프 (2)
  • 잔디 달력

    «   2026/01   »
    일 월 화 수 목 금 토
    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
  • 인기 글

  • 태그

    개발자 취업
    topology sort
    stack
    java stack
    Vue.js 입문하기
    도커컨테이너
    백준 구현문제
    코딩테스트 준비
    리액트 상태
    김영한
    99클럽
    백준
    java
    Vue.js
    항해99
    springboot
    알고리즘
    java 백준
    linux
    til
    도커
    백준 java
    자바
    React
    front-end
    자바 스택
    docker
    Vue
    greedy
    Spring
  • 01-21 21:28
    반응형
  • hELLO· Designed By정상우.v4.10.3
제가안난데여♪(´ε`*)
[React] style Prop 사용하여 Inline(인라인)으로 css 적용하기
상단으로

티스토리툴바