ファースト。
リアクション自体はオブジェクト指向のテクニックを強制しませんが、 リアクションコンポーネントは完全に再利用可能です。非常にシンプルな入力テキストボックス、ラベルから複雑なものまで汎用コンポーネントを作成でき、何度も再利用できます。
あなたはJAVA世界から来ているなら、私はやや似た方法でクラスの味を得るためにのJavascript ES6を使用するためにあなたをお勧めします。
サンプルは
class Text extends React.Component {
render() {
return <p>{this.props.children}</p>;
}
}
React.render(<Text>Hello World</Text>, document.body);
JavascriptをES6でコンポーネントを反応させるの継承がここ
class Point {
constructor(x, y) {
this.x = x;
this.y = y;
}
toString() {
return '(' + this.x + ', ' + this.y + ')';
}
}
class CPoint extends Point {
constructor(x, y, color) {
super(x, y);
this.color = color;
}
toString() {
return super.toString() + ' in ' + this.color;
}
}
あなたが見るすべてのコードを働いている方法を参照してくださいJavaScriptであります!
のためにあなたが表現的要素とコンテナコンポーネントより良い再利用性と構造のためを持っているようにアプリケーションを分割することができ反応します。
- 表現的コンポーネント: 小道具を介してデータを受信し、それらを表示するとともに、主に懸念。彼らは、データがどのようにロードされるか、または突然変異され、独自の状態を持たない方法を指定しません。
例
const Text = ({ children = 'Hello World!' }) => <p>{children}</p>
- コンテナコンポーネント: は、プレゼンテーションまたは他の容器コンポーネントにデータと動作を渡します。彼らは独自の状態を持っています。ここでデータを生成し、それをプレゼンテーションコンポーネントに渡すことができます。
例
class Contacts extends React.Component {
constructor(props) {
super(props);
this.state = {
message:"new message"
};
}
render() {
return (
<div><Text children={this.state.message}/></div>
);
}
}
私は離れてミックスインからのご滞在をお勧めします。 ミックスはES6クラスではサポートされていません。
Javascriptはオブジェクト指向です! –
私は、OOPはウェブアプリケーションにとって非常に望ましいデザインパターンではないという前提に基づいていると考えています。多くのことを広げ、他の多くのものと話すことから生じる多くの合併症を克服しようとしています... – dandavis
Googleの "コンポーネント構成"とそれについて読んで - それは私の意見では継承よりはるかに良いアプローチです。 – Cymen