[react] React 2020 CheatSheet 03

in #zzan6 years ago



3. 컴포넌트와 속성 : components and props

3.1. 리엑트 기본 컴포넌트 구성


// 1 : 함수형 컴포넌트 타입
function Header() {
    // 함수형 컴포넌트는 기본js와 달리 대문자로 시작한다 : ex) Header
  return <h1>Hello React</h1>;
}

// 화살표 함수 타입 또한 가능
const Header = () => <h1>Hello React</h1>;

// 2 : 클래스형 컴포넌트 타입
// 클래스형 컴포넌트가 더 많은 상용구(extends-상속 등)를 가지고 있으며, 기본적으로 render 메소드를 구현한다.
class Header extends React.Component {
    render() {
    return <h1>Hello React</h1>;
  }
}

3.2. 컴포넌트 사용방법

// jsx 함수 선언 
const Header = () => <h1>Hello React</h1>;

// 커스텀 jsx 사용 함수명을 태그 형태로 입력한다
ReactDOM.render(<Header />, document.getElementById(“root”));

// renders: <h1>Hello React</h1>

3.3. 컴포넌트 재활용 하기

// 예를들어 Header와 Footer 를 만들고 내용을 바꿔(Hero, About) 새롭게 IndexPage 와 AboutPage 컴포넌트를 만들어 사용할 수 있다.
// '/' 로 라우팅 예시
function IndexPage() {
  return (
    <Header />
    <Hero />
    <Footer />
); }

// '/about' 로 라우팅 예시
function AboutPage() {
  return (
    <Header />
    <About />
    <Footer />
); }

3.4. 컴포넌트에 속성(prop) 값 설정으로 데이터 전달하기

// 컴포넌트에 값을 전달하기 위해 prop 설정을 활용 합니다. 예시) Header 에 사용자명 설정 등
const username = “John”;

// Header 함수에 props 라는 속성 값을 추가 합니다.
// 그리고 아래와 같이 중괄호로 사용자 명을 입력 받습니다.
ReactDOM.render(
<Header username={username} />,
document.getElementById(“root”) );

// 입력받은 username 은 props object(개체) 를 통해 함수 내에서 사용할 수 있습니다.
// 또한 모든 컴포넌트에서 위와 같은 방식으로 사용 할 수 있습니다.
function Header(props) {
    return <h1>Hello {props.username}</h1>;
}

3.5. props 는 직접적으로 변경 불가 (readonly)

function Header(props) {
    // prop object 를 변형 할 수 없습니다. 읽기전용 속성
    props.username = “Doug”;
    return <h1>Hello {props.username}</h1>;
}

3.6. 하위 자식 개체에 prop 정보 전달하기


// children 속성은 매우 유용합니다.
// Layout 컴포넌트와 같이 다른 컴포넌트를 감쌀때(wrap) 매우 유용합니다.
// (감싸주는 스타일을 통일하게 지정할 수 있기 때문)
function Layout(props) {
    return <div className=”container”>{props.children}</div>; 
}

// Header, Hero, Footer 를 Layout 컴포넌트로 감싸 준다.
function IndexPage() {
  return (
    <Layout>
      <Header />
      <Hero />
      <Footer />
        </Layout> 
    );
}

// Header, Hero, Footer 를 Layout 컴포넌트로 감싸 준다.
function AboutPage() {
  return (
    <Layout>
            <About />
      <Footer />
    </Layout>
    ); 
}

3.7. 상태값에 따라 컴포넌트 표시하기

function Header() {
    const isAuthenticated = checkAuth();
      return (
        <nav>
            <Logo />
                // 인증된 경우에 <AuthLinks /> 아니라면 <Login /> 을 보여준다 
          {isAuthenticated ? <AuthLinks /> : <Login />}
                // 인증된 경우에 <Greeting /> 를 아니라면 아무것도 보여주지 않는다 
          {isAuthenticated && <Greeting />}
        </nav>
    ); 
}

3.8. 다양한 컴포넌트를 표시하기 위한 파편(프레그먼츠:Fragments)

<> ... </> 를 사용하여 다건의 컴포넌트를 표현한다

function Header() {
    const isAuthenticated = checkAuth(); return (
        <nav>
        {isAuthenticated ? (
            <>
            <AuthLinks />
            <Greeting />
            </>
        ) : <Login />}
        </nav> 
    );
}


React 2020 CheatSheet

이전 글 보기 | 다음 글 보기

01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 | 13 | 14 |


Buy Me A Coffee

Coin Marketplace

STEEM 0.08
TRX 0.29
JST 0.036
BTC 101749.56
ETH 3381.32
USDT 1.00
SBD 0.56