React

React STEP 5 - 컴포넌트 스타일 2

2025. 2. 6. 16:10
728x90

⭐ 컴포넌트

  • 컴포넌트는 화면을 구성하는 구성 요소를 의미합니다.

1. 컴포넌트는 개별적인 속성을 정의할 수 있다.

  • ReactDOM에서 호출된 컴포넌트에서 전달한 속성은 {this.props.propsValue} 방식으로 전달 받습니다. 
    props는 속성인 Properties의 약어입니다.
  • this는 HelloReact 컴포넌트를 의미합니다. 이를 바인딩(binding)이라 합니다.
  • 전달받은 속성은 중괄호를 사용해서 렌더링하며, 이런 방식을 JSX의 표현식이라 합니다.
class StudyReact extends React.Component {
    render() {
        return (
            <h5>Study React {this.props.type} </h5>
        )
    }
}

root.render(
  <div>
      <StudyReact type="type1" />
      <StudyReact type="type2" />
      <StudyReact type="type3" />
      <StudyReact type="type4" />
      <StudyReact type="type5" />
  </div>
);
  • props는 여러 개를 추가할 수도 있습니다.
class StudyReact extends React.Component {
    render() {
        return (
            <h5>Study React {this.props.type} {this.props.user} </h5>
        )
    }
}

root.render(
  <div>
      <StudyReact type="type1" user="kim" />
      <StudyReact type="type2" />
      <StudyReact type="type3" />
      <StudyReact type="type4" />
      <StudyReact type="type5" />
  </div>
);
  • ReactDOM에서 추가된 HTML 구조는 {this.props.children} 방식으로 전달 받습니다.
class Button extends React.Component {
  render() {
    return (
      <button type={this.props.attr}>{this.props.children}</button>
    )
  }
}

root.render (
  <div>
    <Button attr="button">Button</Button>
    <Button attr="reset">Reset</Button>
    <Button attr="submit">Submit</Button>
  </div>
)
  • 추가적인 컴포넌트
class Korean extends React.Component {
  render() {
    return (
      <div className="korean">
        {this.props.children}
      </div>
    );
  }
}

root.render (
  <div>
    <Korean>가</Korean>
    <Korean>나</Korean>
    <Korean>다</Korean>
    <Korean>라</Korean>
  </div>
)

 

2. CSS 방식

  • Inline 방식을 선호합니다.
  • 기존에 쓰던 방식과 차이가 존재합니다.
display: inline-block; -> display: "inline-block",
margin: 10px; -> margin: 10,
margin: 0 auto; -> margin: "0px auto";
padding: 10px; -> padding: 10,
background-color: #fff; -> backgroundColor: "#fff"
  • 사용 예시
class Korean2 extends React.Component {
  render() {
    let koreanStyle = {
      display: "inline-block",
      margin: 10,
      padding: 10,
      backgroundColor: this.props.bgColor
    };

    return (
      <div style={koreanStyle}>
        {this.props.children}
      </div>
    )
  }
}

root.render(
  <div>
    <Korean2 bgColor="#eaeaea">가</Korean2>
    <Korean2 bgColor="#ccc">나</Korean2>
    <Korean2 bgColor="#999">다</Korean2>
  </div>
)

 

728x90
저작자표시 비영리 변경금지 (새창열림)

'React' 카테고리의 다른 글

React STEP 7 - 생명주기 함수  (0) 2025.02.06
React STEP 6 - 컴포넌트 이해  (0) 2025.02.06
React STEP 4 - 컴포넌트 스타일 1  (0) 2025.02.06
React STEP 3 - 기본 메서드  (0) 2025.02.06
React STEP 2 - 프로젝트 구조 분석  (0) 2025.02.06
'React' 카테고리의 다른 글
  • React STEP 7 - 생명주기 함수
  • React STEP 6 - 컴포넌트 이해
  • React STEP 4 - 컴포넌트 스타일 1
  • React STEP 3 - 기본 메서드
IT의 큰손
IT의 큰손
IT계의 큰손이 되고 싶은 개린이의 Log 일지
Developer Story HouseIT계의 큰손이 되고 싶은 개린이의 Log 일지
IT의 큰손
Developer Story House
IT의 큰손
전체
오늘
어제
  • 분류 전체보기 (457)
    • 정보처리기사 필기 (18)
    • 정보처리기사 실기 (12)
    • 정보처리기사 통합 QUIZ (12)
    • 빅데이터 (11)
    • 안드로이드 (11)
    • 웹페이지 (108)
    • 자바 (49)
    • SQLD (3)
    • 백준 알고리즘 (76)
    • 데이터베이스 (41)
    • 깃허브 (2)
    • Library (14)
    • Server (31)
    • 크롤링&스크래핑 (3)
    • Spring (23)
    • Vue.js (13)
    • React (27)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

  • Developer Stroy House

인기 글

태그

  • jsp
  • 코딩테스트
  • JavaScript
  • java
  • 웹개발
  • 백엔드
  • 앱개발자
  • 웹개발자
  • IT자격증
  • 정보처리기사
  • 웹페이지
  • 정보보안전문가
  • css
  • jquery
  • 데이터베이스
  • 프론트엔드
  • React
  • IT자격증공부
  • 백준
  • 알고리즘
  • IT개발자
  • it
  • 자바
  • DB
  • DBA
  • ajax
  • 개발자
  • 정보처리기사필기
  • 개발블로그
  • html

최근 댓글

최근 글

Designed By hELLO
IT의 큰손
React STEP 5 - 컴포넌트 스타일 2
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.