From 1f6272b567f2a8299a7568e06fb5f73a007f188e Mon Sep 17 00:00:00 2001 From: Jinwoo Oh Date: Mon, 9 Mar 2015 21:14:03 +0900 Subject: [PATCH] Translate 06 to Korean - Up to 8326a9f --- docs/06-transferring-props.ko-KR.md | 164 ++++++++++++++++++++++++++++ 1 file changed, 164 insertions(+) create mode 100644 docs/06-transferring-props.ko-KR.md diff --git a/docs/06-transferring-props.ko-KR.md b/docs/06-transferring-props.ko-KR.md new file mode 100644 index 00000000..296d8c4f --- /dev/null +++ b/docs/06-transferring-props.ko-KR.md @@ -0,0 +1,164 @@ +--- +id: transferring-props-ko-KR +title: Props 전달 +permalink: transferring-props-ko-KR.html +prev: reusable-components-ko-KR.html +next: forms-ko-KR.html +--- + +React에서는 컴포넌트를 감싸서 추상화하는 것이 일반적인 패턴입니다. 외부 컴포넌트에서는 간단한 프로퍼티만을 노출하여 복잡한 세부 구현을 감출 수 있습니다. + +[JSX 스프레드 어트리뷰트](/react/docs/jsx-spread-ko-KR.html)를 통해 props에 추가적인 값을 병합할 수 있습니다. + +```javascript +return ; +``` + +만약 JSX를 사용하지 않는다면 ES6의 `Object.assign`나 Underscore의 `_.extend` 같은 객체 헬퍼를 사용할 수 있습니다: + +```javascript +return Component(Object.assign({}, this.props, { more: 'values' })); +``` + +이 튜토리얼의 나머지 부분은 모범 답안을 소개할 것입니다. JSX와 실험적인 ES7 구문을 사용합니다. + +## 수동적인 전달 + +대부분의 경우 명시적으로 프로퍼티를 아래로 전달해야 합니다. 이는 동작을 확신하는 내부 API의 일부만 공개하도록 합니다. + +```javascript +var FancyCheckbox = React.createClass({ + render: function() { + var fancyClass = this.props.checked ? 'FancyChecked' : 'FancyUnchecked'; + return ( +
+ {this.props.children} +
+ ); + } +}); +React.render( + + 세상아 안녕! + , + document.body +); +``` + +하지만 `name`이나 `title`, `onMouseOver` 같은 prop들이 더 추가된다면 어떨까요? + +## JSX에서 `...`를 사용해 전달하기 + +> 주의: +> +> 아래의 예제에서는 실험적인 ES7 문법이 사용되었기 때문에 `--harmony ` 플래그가 필요합니다. 브라우저에서 JSX 변환기를 사용 중이라면, `