반응 구성 요소


React Components

이 장에서는 구성 요소를 사용하여 애플리케이션을 더 쉽게 관리하는 방법에 대해 설명합니다.

다음으로 "Hello World!"를 출력하는 구성 요소를 봉인합니다. 구성 요소 이름은 HelloMessage입니다.

Instance

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <title>php中文网 React 实例</title>
    <script src="http://static.php.cn/assets/react/react-0.14.7/build/react.min.js"></script>
    <script src="http://static.php.cn/assets/react/react-0.14.7/build/react-dom.min.js"></script>
    <script src="http://static.php.cn/assets/react/browser.min.js"></script>
  </head>
  <body>
    <div id="example"></div>
    <script type="text/babel">
      var HelloMessage = React.createClass({
        render: function() {
          return <h1>Hello World!</h1>;
        }
      });

      ReactDOM.render(
        <HelloMessage />,
        document.getElementById('example')
      );
    </script>
  </body>
</html>

Run Instance»

온라인 인스턴스를 보려면 "인스턴스 실행" 버튼을 클릭하세요

인스턴스 분석:

React.createClass 메소드는 구성 요소 클래스 HelloMessage를 생성하는 데 사용됩니다.

<HelloMessage /> 구성 요소 클래스를 인스턴스화하고 메시지를 출력합니다.

기본 HTML 요소 이름은 소문자로 시작하지만 사용자 정의 React 클래스 이름은 대문자로 시작합니다. 예를 들어 HelloMessage는 helloMessage로 작성할 수 없습니다. 또한 구성 요소 클래스에는 최상위 레이블이 하나만 포함될 수 있으며 그렇지 않으면 오류가 보고된다는 점에 유의해야 합니다.

구성 요소에 매개 변수를 전달해야 하는 경우 this.props 개체를 사용할 수 있습니다. 예는 다음과 같습니다.

Instance

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <title>php中文网 React 实例</title>
    <script src="http://static.php.cn/assets/react/react-0.14.7/build/react.min.js"></script>
    <script src="http://static.php.cn/assets/react/react-0.14.7/build/react-dom.min.js"></script>
    <script src="http://static.php.cn/assets/react/browser.min.js"></script>
  </head>
  <body>
    <div id="example"></div>
    <script type="text/babel">
      var HelloMessage = React.createClass({
        render: function() {
          return <h1>Hello {this.props.name}</h1>;
        }
      });

      ReactDOM.render(
        <HelloMessage name="php" />,
        document.getElementById('example')
      );
    </script>
  </body>
</html>

인스턴스 실행»

"인스턴스 실행"을 클릭합니다. " 버튼을 눌러 온라인 예시를 확인하세요

위 예시에서 name 속성은 this.props.name을 통해 획득됩니다.

속성을 추가할 때 주의하세요. class 속성은 className으로 작성하고, for 속성은 htmlFor로 작성해야 합니다. 이는 class와 for가 JavaScript에서 예약어이기 때문입니다.


Composite Component

여러 구성 요소를 생성하여 구성 요소를 합성할 수 있습니다. 즉, 구성 요소의 서로 다른 기능적 지점을 분리합니다.

다음 예제에서는 웹사이트 이름과 URL을 출력하는 구성 요소를 구현했습니다.

Instance

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <title>php中文网 React 实例</title>
    <script src="http://static.php.cn/assets/react/react-0.14.7/build/react.min.js"></script>
    <script src="http://static.php.cn/assets/react/react-0.14.7/build/react-dom.min.js"></script>
    <script src="http://static.php.cn/assets/react/browser.min.js"></script>
  </head>
  <body>
    <div id="example"></div>
    <script type="text/babel">
   var WebSite = React.createClass({
      render: function() {
        return (
          <div>
            <Name name={this.props.name} />
            <Link site={this.props.site} />
          </div>
        );
      }
    });

    var Name = React.createClass({
      render: function() {
        return (
          <h1>{this.props.name}</h1>
        );
      }
    });

    var Link = React.createClass({
      render: function() {
        return (
          <a href={this.props.site}>
            {this.props.site}
          </a>
        );
      }
    });

    React.render(
      <WebSite name="php中文网" site=" http://www.php.cn" />,
      document.getElementById('example')
    );
    </script>
  </body>
</html>

Run Instance»

온라인 예제를 보려면 "인스턴스 실행" 버튼을 클릭하세요

In 예를 들어 WebSite 구성 요소는 Name 및 Link 구성 요소를 사용하여 해당 정보를 출력합니다. 즉, WebSite에는 Name 및 Link 인스턴스가 있습니다.