Page 28 -
P. 28

this.props 객체의 키는 createElement()의 두 번째 매개변수로 전달한 객체의 키와 같다. this.

                        props의 키로 id, frameworkName, title을 확인할 수 있다. React.createElement()의 두 번째         2
                        인자로 전달하는 키-값 쌍의 수는 제한이 없다.

                        덧붙여서, 이미 눈치챘겠지만 HelloWorld 컴포넌트의 모든 속성을 자식 엘리먼트인 <h1>에 넘겨                         React 첫걸음
                        주는 것도 가능하다. 컴포넌트에 어떤 속성이 전달되는지 확실하지 않을 때 매우 유용한 방법이
                        다. 예를 들면 HelloWorld 컴포넌트로 인스턴스를 생성하는 개발자가 스타일 속성을 직접 입력할
                        수 있도록 해야 하는 경우가 있다. 따라서 <h1>에 렌더링할 HTML 속성에 제한을 두지 않는 것

                        이다.

                         예제 코드 2.5 HelloWorld 컴포넌트의 모든 속성을 <h1>으로 전달하는 경우
                          class HelloWorld extends React.Component {
                            render() {
                              return React.createElement(
                                'h1',
                                this.props,   모든 속성을 자식 엘리먼트에 전달한다.
                                'Hello ' + this.props.frameworkName + ' world!!!'
                              )
                            }
                          }



                        예제 코드 2.6(ch02/hello-js-world/js/script.js)처럼 세 가지 HelloWorld 엘리먼트를 컨테이너
                        <div>에 렌더링한다. 렌더링된 결과는 그림 2-9에서 확인할 수 있다.


                         예제 코드 2.6 엘리먼트 생성 시 속성 전달
                          class HelloWorld extends React.Component {
                            render() {
                              return React.createElement(
                                'h1',
                                              HelloWorld 컴포넌트로 전달한 모든 속성을 createElement를
                                this.props,   호출할 때 <h1> 엘리먼트로 전달한다.
                                'Hello ' + this.props.frameworkName + ' world!!!'  frameworkName 속성은
                              )                                              <h1>의 텍스트로 노출한다.
                            }
                          }
                          ReactDOM.render(
                            React.createElement(
                              'div',
                              null,
                              React.createElement(HelloWorld, {


                                                                                                      079




         리액트 교과서(본문)최종.indd   79                                                                2018-05-09   오전 12:32:56
   23   24   25   26   27   28   29   30   31