Vue3のいくつかの利点についての簡単な説明

Vue3のいくつかの利点についての簡単な説明

Vue2 はすでに非常に優れており、完全なコミュニティとエコシステムを備えていますが、Vue3 はソース コード、パフォーマンス、構文 API という 3 つの主要な側面で最適化されています。

1. ソースコード

1.1 モノレポ

ソースコードの管理方法はmonorepoです。 monorepoこれらのモジュールを異なるpackageに分割し、各package独自の API、型定義、テストが含まれます。これにより、モジュールの分割がより詳細になり、責任の分担がより明確になり、モジュール間の依存関係がより明確になり、開発者がすべてのモジュールのソースコードを読み、理解し、変更することが容易になり、コードの保守性が向上します。

1.2 タイプスクリプト

Vue2時代にはflowが選ばれました。 flow自体には機能的な欠点があり、 TSの方が開発の勢いが強いため、 Vue3 TSを使ってコードを書くことを選択しましたTSをより良くサポートして開発体験を向上させることもできます。

2. パフォーマンス

2.1 ソースコードのサイズを最適化する

ソース コードのボリュームは、主に次の 2 つの側面から最適化されました。

filterinline-templateなどの人気のない API を削除します。

APIを減らすと必然的にコードサイズも小さくなるので、これは非常に理解しやすい。

バンドルサイズを縮小するためにtree-shakingを導入

tree-shaking ES2015モジュール構文の静的構造 ( importexportなど) に依存しています。コンパイル フェーズでの静的分析を通じて、インポートされていないモジュールを見つけてマークします。このテクノロジは、 webpackなどのパッケージング ツールで非常に人気があります。

Vue3 でのアプリケーション: Vueが提供するすべてのAPIを使用することはほとんどありません。単一のビジネス シナリオで使用されない、人気のない API が常に存在します。パッケージ化プロセスでは、ユーザーが使用しないこれらのAPIを削除して、パッケージ サイズを縮小できます。

2.3 プロキシ

Vue2以前、データハイジャックにObject.defineProperty使用していました。

Object.defineProperty(ソース、キー、{
  得る(){
    // やること...
  },
  セット(){
    // やること...
  }
})

いくつか欠点がある

  • ハイジャックされたkey何であるかを事前に知っておく必要があり、オブジェクト プロパティの追加と削除を十分に監視することはできません。
  • 初期化中にdata全体が再帰的に走査されるため、深くネストされたデータ構造ではパフォーマンスに負担がかかります。
  • Vue3データハイジャックにProxyを使用しており、 Object.definePropertyによって引き起こされる欠陥を効果的に回避できます。
p = 新しいプロキシ(ソース、{
  得る() {
    // やること...
  },
  セット() {
    // やること...
  }
})

2.4 コンポジションAPI

Vue3構文の面で最適化されており、主に元のOptions API Composition API APIを提供しています。

Options API 、各ステージに対して、 methodscomputeddataprops 、ライフフックのオプションを提供します。開発者は各 API で対応する操作を実行でき、それぞれが独自の役割を果たします。開始と理解にかかるコストは非常に低く、初心者の開発者にとって非常に使いやすいものです。小規模なプロジェクトの開発に使用する場合、コードの可読性と保守性もかなり優れています。しかし、大規模なプロジェクトやより複雑なビジネス ロジックに遭遇すると、コードの保守が非常に難しくなります。関数を変更するために、コード内の複数の場所にジャンプする必要が生じることがよくあります。関数のコードがさまざまな場所に分散しているため、読み取りと理解のコストが急激に増加します。Composition Composition APIは、この問題を解決するための優れたメカニズムがあります。これは、特定の論理的な関心事に関連するすべてのコードを 1 つの関数に配置することで、関数を変更する必要がある場合に、ファイル内を行ったり来たりする必要がないようにすることです。

Vue3 のメリットについての記事はこれで終了です。Vue3 のメリットについてさらに詳しく知りたい方は、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続きご覧ください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • vue3.0 のウォッチ リスナーの例の詳細な説明
  • Vue3.0のさまざまなリスニング方法の包括的な概要
  • vue3.0 sfcのセットアップの変更について簡単に説明します。
  • vue2 vue3 での Echarts の詳細な使用方法

<<:  CSS で 3 列レイアウトを実装するいくつかの方法と利点と欠点

>>:  MySQL DATE_FORMAT関数の使用

推薦する

Google の新しい UI から学べること (画像とテキスト)

2011 年に最も顕著なウェブサイトの変更は、一連の製品に新しいユーザー インターフェースを導入した...

jsは徐々に増加するデジタルアニメーションを実現します

目次背景コンテナを固定し、数字を上にスクロールすることで、スクロールホイールと同様の効果を実現します...

Windows での MySQL 8.0.18 インストール チュートリアル (図解)

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

MySQL 8の新機能におけるグローバルパラメータの永続性の詳細な説明

目次序文グローバルパラメータの永続性最後に要約する参考資料:序文2018 年に MySQL 8.0....

Linux系でよく使われる運用・保守コマンド(まとめ)

目次1. システム監視2. ファイル操作3. ネットワーク通信4. システム管理仕事で必要なLinu...

Reactにおける不変値の説明

目次不変の値とは何ですか?不変の値を使用するのはなぜですか? Reactのパフォーマンス最適化は不変...

UbuntuへのDocker CEのインストール

この記事は、Ubuntu 17.10 での Docker CE のインストールを記録するために使用さ...

CSSは高さを設定せずにdivを完全に中央に配置することを実現します

必要とする本文の下のdivは垂直方向に中央揃えになっていますdiv 内のテキストを垂直中央に配置する...

Vue.js $refs 使用例の説明

プロパティやイベントがあるにもかかわらず、JavaScript で子コンポーネントに直接アクセスする...

フロントエンドの状態管理(パート2)

目次1. 再出発1.1. ストア(司書) 1.2. 状態(書籍) 1.3. アクション(図書貸出リス...

最も完全なpackage.json分析

目次1. 概要2. 名前フィールド3. バージョンフィールド4. 説明フィールド5. キーワードフィ...

Vue.set() と this.$set() の使い方と違い

開発に Vue を使用する場合、次のような状況に遭遇することがあります。Vue インスタンスを生成し...

Win10 に Tomcat サーバーをインストールし、環境変数を構成する詳細なチュートリアル (画像とテキスト)

目次JDKをダウンロードしてインストールするTomcat 圧縮パッケージをダウンロードTomcatの...

docker compose の使い方の詳しい説明

目次Docker Compose の使用シナリオ基本的なデモ基本的な操作とメンテナンスdocker-...

JavaScript イベントバブリング、イベントキャプチャ、イベント委任の詳細な説明

1. イベントバブリング: JavaScript イベント伝播のプロセスでは、要素でイベントがトリガ...