Reactコンポーネントを作成するためのes6構文はexport default class ExampleComponent extends React.Component
です。ただし、がない場合はまだ動作しますが、import React from 'react'
の条件にはextends React.Component
がありません。なぜこのようなことが起こるのですかReact.Componentを拡張しない
答えて
React.Componentを拡張することなく、JSクラスを作成しているだけです。さらに:
- それは(あなたが
React.createClass()
またはES6クラスとしてのいずれかで作成することができます)リアクトクラスの要件を満たしているので、それはよまだ「仕事」、 - しかしあなたはしませんlifeCyleメソッドを取得するか、状態にアクセスしてください(私がこれについて間違っている場合は誰かが私を修正してください、ちょうどクラスBCではバッキングインスタンスが添付されていないと確信しています)。
- これらの「より単純な」コンポーネントは、何かをレンダリングする単なる(うまくいけば)純粋な関数なので、Reactにとっては一般的に処理が速く、必要な機械も少なくて済みやすい
- ここで重要な違いは、レンダリングメソッドを持つクラスでは、「必要な」ものではないことです。これは十分にあるべきであるほとんどの時間の;あなたはすべて
state
にアクセスする必要はありません
希望に役立ちます!
このトピック: https://facebook.github.io/react/docs/state-and-lifecycle.html私は@markthethomasに同意します。ドキュメントから: "...クラスとして定義されたコンポーネントにはいくつかの追加機能があります。ローカル状態はまさにそれです:クラスだけが利用できる機能です。"ドキュメントではライフサイクルフックについて明示的に述べていませんが、それは明らかです。 –
「純粋な」JavaScript classを作成していますが、一度それが伸びていなければ、React.Component
は特定のリアクションの動作にアクセスできなくなります。チェックhow extends work。
これをチェックするhttps://github.com/gaearon/flux-react -router-example、多くのReactコンポーネントはReact.Componentを拡張していませんが、まだ正常に動作しています – Guigui
これはこの推奨されていないライブラリのためです:https://github.com/gaearon/react-pure-render –
- 1. ES6クラス(React.Componentを拡張)ではなくReact.createClassを使用していますか?
- 2. 拡張マネージャを使用しないでVS2010拡張機能をアンインストールする
- 3. オープンソースのない拡張性
- 4. インターフェイスで機能しない拡張メソッド
- 5. UIComponent拡張クラスにUIComponent拡張クラスが表示されない
- 6. ペーパークリップセット:拡張子がない場合mp3への拡張
- 7. サーバへのアクセスなしでCRM 4.0の拡張/改善/拡張
- 8. 新しい拡張メソッド
- 9. ケースクラスがProductのみを拡張し、Product1、Product2、...、ProductNを拡張しないのはなぜですか?
- 10. ファイル拡張子を数えないプログラム
- 11. UIを持たない拡張機能
- 12. 一般的なC#ディクショナリを使用した拡張(つまり+)拡張メソッド
- 13. Android Java - なぜ拡張アクティビティではない - >新しいアクティビティ
- 14. FPDFエラーは文句を言わないなしイメージ拡張
- 15. 301新しい拡張子にファイル拡張子に基づいてリダイレクト
- 16. Ajaxがデータを投稿していない、Chrome拡張機能
- 17. 拡張クラス内の拡張メソッド自体を使用して
- 18. コマンド拡張のpowershell拡張を無効にしますか?
- 19. 拡張子のないファイル名
- 20. 拡張メソッドが表示されない
- 21. 拡張子のないファイル名VBA
- 22. Silverlight:ファイル拡張子のないイメージソース
- 23. エラー:クラスフラグメントを拡張しているエラー
- 24. CoffeeScriptの「拡張」とBackbone.jsの「拡張」との間の基本的な違い
- 25. traitは機能拡張機能を拡張していますか(A => B)?
- 26. asp.netカスタムエラーページと拡張子なしのファイル
- 27. php + xml wuthout拡張子なし
- 28. .aspx拡張子なしのSiteCore URL
- 29. LINQの拡張メソッド - GetYearWeekFormat拡張
- 30. Tcl拡張:拡張のライフサイクルClientData
前者はライフサイクルメソッド(例: 'componentDidMount')にアクセスできますが、後者はアクセスできません。これは静的なコンポーネントです。 – lux
@lux後者は 'render'へのアクセス権を持っています。これはhttps://github.com/gaearon/flux-react-router-example – Guigui
をチェックし、ドキュメンテーション:https:// facebookによる 'render()'のみです。 github.io/react/blog/2015/10/07/react-v0.14.html#stateless-functional-components - > '"これらのコンポーネントは、レンダリングメソッドのみが定義されたReactクラスのように動作します " – lux