2016-07-12 29 views
4

可能であれば、「ステートレスファンクションコンポーネント」を使用するべきですが、主な理由はありません。メリットは何ですか?'ESC Class Components'よりも「Stateless Function Components」のメリットは何ですか?

+0

これらのフレーズの両方を検索すると、最初の結果として[この記事](https://facebook.github.io/react/docs/reusable-components.html)が表示されました。それは利益をリストアップします。しかし、これはあまりにも広いです。たぶん、あなたはいくつかの記事を読んで、そして戻って来て、あなたが知っているか知らないものを説明するべきです。 – 4castle

+0

私はその記事を読んだ。彼らはそのメリットについてほとんど情報を提供しませんでした。私と他の人がそれに基づいてより詳細な情報を得ることが役立つと思います。 – Rotareti

+0

興味深い。 "保留する"。それは完全に有効で正常な質問です。良い答えは短く、「あまりにも多い」ものはありません(実際には「あまりにも多くの回答」や「長すぎる」と思われますか?)。 – gaperton

答えて

3

最初に、ステートレス関数コンポーネントは、リアクションレンダリングパイプラインに最適化されたショートパスがあるため、より高速にレンダリングされます。

第2に、入力が少なく、視覚的なノイズがほとんどないため、コードははるかにクリーンです。現代のJSを使っているなら、もちろんです。これは好ましい方法である状態、状況、またはカスタム・ライフサイクル・メソッドを持っていないすべてのもののために

const MyFancyDiv = ({ children, ...otherProps }) => (
    <div { ...otherProps } className='i-am-fancy-wrapper'> 
     { children } 
    </div> 
); 

:私はいくつかの「カスタムタグ」を定義しています、それをチェックアウト。

実際、これはReactの機能で、他のフレームワークにとっては非常に難しいものです。可能であれば使用してください。

+0

利点はありませんが、注目に値する可能性があります。機能コンポーネントにはインスタンスがまったくありません。クラスコンポーネントにはインスタンスがありますが、コンポーネントインスタンスを直接作成する必要はありません.Reactがこれを処理します。 –

+0

はい、それがより速くレンダリングされる理由の1つです。インスタンスなし、ライフサイクルフックなし、レンダリングパスの単純化。 – gaperton

関連する問題