---
id: transferring-props
title: propsの移譲
permalink: transferring-props-ja-JP.html
prev: reusable-components-ja-JP.html
next: forms-ja-JP.html
---
コンポーネントを抽象的にラップすることはReactにおいて共通のパターンです。外のコンポーネントは単純なプロパティを表示し、中ではさらに複雑なインプリメンテーションの詳細を持つようになっています。
以下のように、古いpropsと追加の値を[JSXの拡張属性](/react/docs/jsx-spread-ja-JP.html)を使ってマージすることができます。
```javascript
```
JSXを使わない場合は、以下のように、ES6の `Object.assign` か Underscore の `_.extend` といったオブジェクトヘルパーを使うことができます。
```javascript
React.createElement(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(
Hello world!
,
document.getElementById('example')
);
```
しかし、 `name` プロパティや `title` プロパティや `onMouseOver` はどうでしょうか?
## JSXにおける `...` を使った移譲
> 注意:
> 以下の例では、実験的なES7のシンタックスであることを示すために `--harmony ` フラグが必要になります。ブラウザ上でJSXトランスフォーマーを使う際には、単純に `