ホームページ  >  記事  >  ウェブフロントエンド  >  なぜ React は mvvm フレームワークではないのか

なぜ React は mvvm フレームワークではないのか

WBOY
WBOYオリジナル
2022-04-21 17:30:241589ブラウズ

react は一方向のデータ バインディングであり、mvvm の最も重要な機能は双方向のデータ バインディングであるため、mvvm フレームワークではビューをマップするために vm オブジェクトが必要ですが、react には vm がありません。純粋な意味で、オブジェクトにはプロパティと状態があるため、react は mvvm フレームワークではありません。

なぜ React は mvvm フレームワークではないのか

このチュートリアルの動作環境: Windows 10 システム、react17.0.1 バージョン、Dell G3 コンピューター。

react が mvvm フレームワークではない理由

mvvm

まず、mvvm の意味を理解してください。 vm はビューモードを意味します。

したがって、mvvm フレームワークには、ビューをマップするための vm オブジェクトが必要です。

つまり、vm オブジェクトの属性が変更されると、対応するビュー パーツもそれに応じて更新されます。より古典的なものは、knockoutjs で、主要な概念はビュー モデル、コンピューティング、ビュー テンプレートなどです。はい、実際には vue にはその影がたくさんあります。

react

それでは、react を見てみましょう。これには純粋な意味での vm オブジェクトはなく、属性と状態のみがあります。

属性と状態を使用してビューをマップします。では、属性と状態と vm の違いは何でしょうか?個人的には、vm オブジェクトは、値が外部から渡されるか、内部で定義されるかに関係なく、同等に扱われると思います。多くの場合、双方向バインディングの仕組みがあり、初期の flex がすごかったのかもしれませんが、その後の mvvm フレームワークには双方向バインディングの概念があります。一方、React は属性の不変性と一方向のデータ フローを重視します。内部状態は内部で制御されます。

このようなデザインは、デザインの観点からはより複雑になる可能性がありますが、使用の観点からはより確実かつ明確になります。 React に精通している場合は、適切なコンポーネントの適切な状態を管理し、状態を合理的に階層化すると、アプリケーションの複雑さが大幅に軽減されます。次に、redux にはコンテナコンポーネントと純粋な表示コンポーネントという非常に高度な概念があり、この設計思想を理解すると、複雑なものを少数のコンポーネントに集中させることができ、ほとんどのコンポーネントが純粋な表示コンポーネントになり、複雑さがさらに軽減されます。アプリケーションの性別。

MVVM の最も重要な機能の 1 つである双方向バインディング。

React にはこれがありません。一方向のデータ バインディングです。

React は、状態駆動型のビューを備えた一方向のデータ フロー ライブラリです。

State --> View --> New State --> New View

推奨学習: 「react ビデオ チュートリアル

以上がなぜ React は mvvm フレームワークではないのかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。