react は一方向のデータ バインディングであり、mvvm の最も重要な機能は双方向のデータ バインディングであるため、mvvm フレームワークではビューをマップするために vm オブジェクトが必要ですが、react には vm がありません。純粋な意味で、オブジェクトにはプロパティと状態があるため、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 サイトの他の関連記事を参照してください。

在react中,canvas用于绘制各种图表、动画等;可以利用“react-konva”插件使用canvas,该插件是一个canvas第三方库,用于使用React操作canvas绘制复杂的画布图形,并提供了元素的事件机制和拖放操作的支持。

在react中,antd是基于Ant Design的React UI组件库,主要用于研发企业级中后台产品;dva是一个基于redux和“redux-saga”的数据流方案,内置了“react-router”和fetch,可理解为应用框架。

React不是双向数据流,而是单向数据流。单向数据流是指数据在某个节点被改动后,只会影响一个方向上的其他节点;React中的表现就是数据主要通过props从父节点传递到子节点,若父级的某个props改变了,React会重渲染所有子节点。

因为在react中需要利用到webpack,而webpack依赖nodejs;webpack是一个模块打包机,在执行打包压缩的时候是依赖nodejs的,没有nodejs就不能使用webpack,所以react需要使用nodejs。

在react中,forceupdate()用于强制使组件跳过shouldComponentUpdate(),直接调用render(),可以触发组件的正常生命周期方法,语法为“component.forceUpdate(callback)”。

react是组件化开发;组件化是React的核心思想,可以开发出一个个独立可复用的小组件来构造应用,任何的应用都会被抽象成一颗组件树,组件化开发也就是将一个页面拆分成一个个小的功能模块,每个功能完成自己这部分独立功能。

react与vue的虚拟dom没有区别;react和vue的虚拟dom都是用js对象来模拟真实DOM,用虚拟DOM的diff来最小化更新真实DOM,可以减小不必要的性能损耗,按颗粒度分为不同的类型比较同层级dom节点,进行增、删、移的操作。

react和reactdom的区别是:ReactDom只做和浏览器或DOM相关的操作,例如“ReactDOM.findDOMNode()”操作;而react负责除浏览器和DOM以外的相关操作,ReactDom是React的一部分。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

Safe Exam Browser
Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。
