レスポンシブ原則と Vue2.0/3.0 の違いについての簡単な分析

レスポンシブ原則と Vue2.0/3.0 の違いについての簡単な分析

序文

vue3.0 が正式にリリースされて以来、多くの友人が vue3.0 に切り替えました。ここでは、皆さんの学習のためにまとめた 3.0 と 2.0 の原則とそれらの違いを書き留めておきます。

ステップ 1: vue2.0 のレスポンシブ原則

まずは公式サイトの説明をご覧ください。

プレーンな JavaScript オブジェクトを Vue インスタンスのデータ オプションに渡すと、Vue はオブジェクトのすべてのプロパティを反復処理し、Object.defineProperty を使用してすべてをゲッター/セッターに変換します。 Object.defineProperty は ES5 ではシムできない機能であるため、Vue は IE8 以前のバージョンのブラウザーをサポートしていません。

これらのゲッター/セッターはユーザーには見えませんが、内部的には Vue が依存関係を追跡し、プロパティがアクセスまたは変更されたときに変更を通知できるようにします。ここで注意する必要がある問題は、データ オブジェクトを印刷するときにブラウザー コンソールが getter/setter を異なる方法でフォーマットするため、より使いやすい検査インターフェイスを取得するには vue-devtools をインストールする必要がある場合があることです。

各コンポーネント インスタンスには対応するウォッチャー インスタンス オブジェクトがあり、コンポーネントのレンダリング中にプロパティを依存関係として記録します。後で依存関係のセッターが呼び出されると、ウォッチャーに再計算が通知され、関連するコンポーネントが更新されます。

私の理解はこうです

実際、API とソース コードを読んだことがある人にとって、v-model と responsive 原則が 2 つのレイヤーに分かれていることを知ることは難しくありません。

  • 最初のレイヤー、つまり最下層は、es5 の機能である Object.defineProperty で、getter と setter を通じてデータを更新します。
  • 2 番目のレイヤーはプレゼンテーション レイヤーです。v-model の原則を読んだことがある人なら誰でも、v-model にウォッチャーがあることをご存知でしょう。v-onwatcher はデータの変更を監視し、v-on はビューを更新します。

ステップ2: vue3.0のレスポンシブ原則

まずは公式サイトの説明をご覧ください。

これが、vue3.0 がオブジェクトのプロパティを直接削除および変更できる理由です。

ステップ3: 2つの違いをまとめる

----------- 3.0

(最初の 2 つは、2.0 のように変更するように設定する必要がなくなりました。直接変更できます)

1. 3.0プロキシは配列型のデータを直接変更できる

2. オブジェクト属性を直接追加および削除できます

3.3.0はIE12以上と互換性があります

4. コンポーネントのv-model構文がv-bind.syncに変更されます。

5. 同じ要素でv-forとv-ifを使用する優先順位が変更されました

6. v-for のキーの使用方法が変更されました

7. v-forのrefは配列として登録されなくなりました

8、destroy、beforeDestroyライフサイクルはunmountedとbeforeUnmountに名前が変更されました

9、<template>はレンダラー内のコンテンツとしてではなく、通常の要素として扱われます。

公式サイトで発表された主な変更点は次のとおりです

要約する

これで、vue2.0/3.0 のレスポンシブ原則と相違点に関するこの記事は終了です。vue2.0/3.0 のレスポンシブ原則に関するより関連性の高いコンテンツについては、123WORDPRESS.COM で以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Vue2.x の応答性の簡単な説明と例
  • Vue2は応答性を提供するためにprovide injectを実装しています
  • Vue のデータ応答性について少し学びましょう (Vue2 と Vue3 の違い)
  • Vue2x をベースにしたレスポンシブ アダプティブ カルーセル コンポーネント プラグイン VueSliderShow 関数の実装
  • Vue2.0のレスポンシブ性を実装するための基本的な考え方について簡単に説明します。
  • vue2.0 レスポンシブ アーキテクチャを理解して分析するための 100 行のコード
  • Vue2 レスポンシブシステム非同期キュー

<<:  nginxのアップストリーム設定と機能の詳細な説明

>>:  Windows 10 での MySQL 8.0.11 圧縮バージョンのインストール チュートリアル

推薦する

Docker はキューとタスクのスケジューリングを実現するために Laravel アプリケーションをデプロイします

前回の記事では、Docker を使用して Laravel アプリケーションをデプロイする方法について...

iframe の多層ネスト、無制限のネスト、高度に適応したソリューション

ページ A、B、C の 3 つがあります。ページ A にはページ B が含まれ、ページ B にはペー...

HTML Selectは、デフォルトの選択を設定するためにselected属性を使用します。

オプションに属性 selected = "selected" を追加すると、それ...

Linux 環境に mysql5.7.36 データベースをインストールするチュートリアル

ダウンロードアドレス: https://dev.mysql.com/downloads/mysql/...

MySQLは既存のコンテンツを保持し、後でコンテンツを追加します

このコマンドは、データ テーブル ff_vod を変更し、vod_url フィールドの内容の後に 9...

Ansible を使用した Nginx のバッチ デプロイのサンプル コード

1.1 nginxインストールパッケージとインストールスクリプトをクライアントにコピーし、スクリプト...

Ubuntu 16.04 64ビット版を3つのステップで32ビットプログラムと互換性を持たせる

ステップ1: システムのアーキテクチャを確認する dpkg --print-architecture...

Vueのdiffアルゴリズムについての簡単な説明

目次概要バーチャルドム原理実装プロセスパッチ方式sameVnode関数patchVnode関数upd...

TypeScript におけるジェネリックケースの詳細な説明

ジェネリックの定義 // 要件 1: ジェネリックは指定されていないデータ型をサポートできるため、渡...

Linux環境でグラフデータベースneo4jを構築する方法の説明

Neo4j (Nosql の 1 つ) は、高性能なグラフ データベース (分散をサポートしていませ...

MySQL で置換操作を使用したときにデータ損失が発生する問題の解決策

序文同社の開発者は、データの更新時に replace into ステートメントを使用していました。不...

Navicat が MySQL に接続するときに発生する 1045 エラーの解決方法

ローカル データベースに接続すると、Navicat for MySQL は以下のように 1045 エ...

HTML チュートリアル: よく使われる HTML タグのコレクション (4)

導入された HTML タグは、必ずしも XHTML 仕様に完全に準拠しているわけではありません。実際...

一般的な Linux ディストリビューションのミラーソース構成の概要

最近 Linux を研究していて、いくつかの Linux ディストリビューションを試してみましたが、...

JS でオブジェクト プロパティを簡単にトラバースするいくつかの方法

目次1. 自己列挙可能なプロパティ2. Object.values()はプロパティ値を返します3. ...