2016-10-13 2 views
0

私はthisをお読みください。ReactのcreateElement(...)はどのように機能しますか?どの小道具が使われていますか?

ReactElement createElement(
    string/ReactClass type, 
    [object props], 
    [children ...] 
) 

指定されたタイプの新しいReactElementを作成して返します。 引数は、htmlタグの名前文字列(例えば、 'div'、 'span'、 など)でも、ReactClass(React.createClassを介して作成された)でもかまいません。

これは実際には私には何が起こるのかを説明しません[object props]。なぜそれが必要ですか?それは何のために使われますか?

createElementに電話すると誰かが[object props]に何が起こるか説明できますか?彼らはどのように使われていますか?彼らは要素をレンダリングするために使用されますか?彼らは後で変更できますか?それらは変更可能か不変か?

質問の理由:私はhow to useスカラーズ反応を見つけようとしています。

+1

このリンクは参考になります:https://facebook.github.io/react/docs/transferring-props.html –

+0

createElementではなく、 ' – KOTIOS

+0

'拡張コンポーネント '?それは何かを説明するだろうか?それだけではないもう一つの統語的な砂糖(複雑なもの)ですか? – jhegedus

答えて

2

にスニークピークを提供し、以下のリンクをチェックアウトするいくつかの時間前ダンアブラモフ監督は、Twitterでの投稿:私は「それのスタートだったと思う

https://twitter.com/dan_abramov/status/781620845185732608

を(どのように反応するか - 実装上の注意 "post abhirathore2006)あなたはそれがここでplunk見ることができます

:たとえばhttp://jsbin.com/qiguyibolu/1/edit?js,output

を、小道具で何が起こっているのか厥:

var node = document.createElement(type); 
Object.keys(props).forEach(propName => { 
    if (propName !== 'children') { 
     node.setAttribute(propName, props[propName]); 
    } 
}); 

彼らは、ノード属性として終わります!ですから、私たちが関数渡しの小道具と呼ぶときと、それを更新する方法についてより深く理解するためには、https://facebook.github.io/react/contributing/implementation-notes.htmlを読むことを本当にお勧めします。男たちは、物事がボンネットの下でどのように機能するかを説明する素晴らしい仕事をしました。私はまだ実際に自分自身でそれをやっています:)

関連する問題