2017-06-19 14 views
0

React Classコンポーネントのレンダリング機能が、小道具を取得せず、パラメータとして状態を表示するのはなぜかと思います。 React Classコンポーネントは、小道具と状態をパラメータとしてレンダリングします。

この

class App extends React.Component { 
    render({ prop1, prop2 }, { state1, state2 }) { 

    } 
} 

はこれより道きれいに私のoppinionで次のようになります。

class App extends React.Component { 
    render() { 
    const { prop1, prop2 } = this.props; 
    const { state1, state2 } = this.state; 
    } 
} 

Preactは、機能をレンダリングするための小道具や状態の両方に合格しません。 Reactがない理由はありますか?

ありがとうございました!

答えて

0

私はFacebookチームのメンバーではありませんが、私はそれが単相性のためだと仮定しています。基本的に、関数がまったく同じパラメータを受け入れると、VMはその関数を再コンパイルする必要はありません。 propsstateは変化するほど揮発性であるため、これはリアクションにとって重要です。モノモフィズムhereの大きな説明があります。

0

反応成分と要素は不変です。レンダリングが発生すると、クラスに必要なすべてのデータ(stateまたはprops)が既にレンダリングされています。

あなたがここにhttps://facebook.github.io/react/docs/rendering-elements.html#updating-the-rendered-element

だからについて読むことができ、これが何をやって反応することができますすることは、それをレンダリングする時間が来るとき、それはすべてがコンポーネントに存在していることを確認です。 thisのスコープで利用できるものはすべて既に用意されているため、適切なパラメータを渡すことについて心配する必要はありません。

関連する問題