2017-02-06 11 views
1

docsでは、Reactは、コンポーネントがコンポーネントとしてプロンプトを入力して出力するため、実際にインスタンスを気にしないと言います。これは、他のフレームワークがインスタンスを作成し、それをDOMに接続してさまざまなイベントを処理する方法の一番上にある例を示しています。しかし、私はReactがやっていることとはどう違っているのか分かりません。Reactコンポーネントのインスタンスは他のフレームワークとどう違うのですか?

あなたはReactのコンポーネントでnewを呼び出していませんが、それをレンダリングして同じハンドラを作成する必要があります。コンポーネント内にthisがまだインスタンスを参照しているので、コンポーネントがレンダリングされるたびにReactはインスタンスを作成する必要はありません(<li>のコンポーネントが一度に複数回レンダリングされていても)。

従来のフレームワークは、対応する各DOMノードに接続するために同じコンポーネントの複数のインスタンスを作成する必要があります。これはReactもやっていることではありませんか?どのように他のコンポーネントが複数のトラックを保持することができますthis

答えて

1

は確かに、内部コンポーネントインスタンスを作成し反応します。 newの使用について心配する必要はありません。

は、Elementは(typeが文字列であれば、React.ComponentまたはHTML要素はあなたがレンダリングされるようにしたいものをを記述することを単なるJavaScriptのオブジェクトで反応します。 docsから

要素は、実際のインスタンスではありません。ではなく、画面上で見たいものに反応するように指示することです。 要素上のメソッド を呼び出すことはできません。 2つの フィールドを持つ不変の記述オブジェクトです:type:(string | ReactClass)とprops:Object1。

+0

本質的にあなたはすべての責任をReactに渡しています - インスタンスの作成と削除、つまり – stackjlei

+1

@stackjleiです! – mrlew

1

違いはあなたは開発者がすべてのことを行うためのコードを書く必要がないということです。レンダリングメソッドとコールバックを書いて、ReactがDOM要素とコンポーネントインスタンスを作成し、それらを一緒に接続することを心配してください。

関連する問題