ホームページ > 記事 > ウェブフロントエンド > React は mvvm フレームワークですか?
react は mvvm フレームワークではありません。 mvvm フレームワークには、ビューをマップするための vm オブジェクトが必要です。つまり、vm オブジェクトのプロパティが変更されると、対応するビュー部分もそれに応じて更新されます。react には vm オブジェクトはありませんが、属性と状態があり、全体を View として使用できるため、react は mvvm フレームワークではありません。
このチュートリアルの動作環境: Windows 10 システム、react17.0.1 バージョン、Dell G3 コンピューター。
react は mvvm フレームワークではありません
まず、mvvm の意味を理解してください。 vm はビューモードを意味します。
したがって、mvvm フレームワークには、ビューをマップするための vm オブジェクトが必要です。つまり、vm オブジェクトの属性が変更されると、対応するビュー パーツもそれに応じて更新されます。
より古典的なものは、knockoutjs で、主要な概念はビュー モデル、コンピューティング、ビュー テンプレートなどです。はい、実際には vue にはその影がたくさんあります。
それでは、react を見てみましょう。これには純粋な意味での vm オブジェクトはなく、属性と状態だけが含まれています。
React は MVVM の 2 番目の V (View) として使用できますが、MVVM フレームワークではありません。
MVVM の最も重要な機能の 1 つは、双方向バインディングです。
React にはこれがありません。一方向のデータ バインディングです。
React は、状態駆動型のビューを備えた一方向のデータ フロー ライブラリです。
React は全体として関数型の考え方に基づいています。コンポーネントは純粋なコンポーネントとして設計され、状態とロジックはパラメーターを通じて渡されます。そのため、React では一方向のデータ フローが存在します。推奨されます。 immutable を組み合わせてデータの不変性を実現します。
それでは、react を見てみましょう。これには純粋な意味での vm オブジェクトはなく、属性と状態だけが含まれています。プロパティと状態を使用してビューをマップします。では、属性と状態と vm の違いは何でしょうか?個人的には、vm オブジェクトは、値が外部から渡されるか、内部で定義されるかに関係なく、同等に扱われると思います。多くの場合、双方向バインディングの仕組みがあり、初期の flex がすごかったのかもしれませんが、後の mvvm フレームワークでは双方向バインディングの概念が取り入れられています。一方、React は属性の不変性と一方向のデータ フローを重視します。
内部状態は内部で制御されます。このようなデザインは、デザインの観点からはより複雑になる可能性がありますが、使用の観点からはより確実で明確になります。 React に精通している場合は、適切なコンポーネントの適切な状態を管理し、状態を合理的に階層化すると、アプリケーションの複雑さが大幅に軽減されます。そして、reduxにはコンテナコンポーネントと純粋な表示コンポーネントという非常に高度な概念があり、この設計思想を理解すれば、複雑なものを少数のコンポーネントに集中させることができ、ほとんどのコンポーネントが純粋な表示コンポーネントとなり、複雑さがさらに軽減されます。アプリケーションの性別。
推奨される学習: 「react ビデオ チュートリアル 」
以上がReact は mvvm フレームワークですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。