vue3 の新機能 Tree-Shaking の詳細な紹介

Vue 3 の Tree-Shaking 機能について話すときは、それがビルド ツールとモジュール インポートを通じて実装されていることを言及する必要があります。以下では、Vue 3 で Tree-Shaking を使用する方法を詳しく説明します。

1. ビルド ツールを構成します。

Vue 3 プロジェクトでは、通常、ビルドに webpack が使用されます。Tree-Shaking 機能を有効にするには、Webpack 構成が次の要件を満たしていることを確認してください。

  • Tree-Shaking はより強力で効率的であるため、webpack 4 以降を使用してください。
  • 実稼働モードでの最適化を有効にするには、必ず実稼働環境で mode: 'production' を設定してください。

2. 必要に応じてコンポーネントをインポートします。

Vue 3 では、ライブラリ全体を直接インポートするのではなく、オンデマンド インポート (オンデマンド読み込み) を使用してサードパーティ コンポーネント ライブラリをインポートすることをお勧めします。これにより、最終的なビルド製品のボリュームを削減し、Tree-Shaking を実装できます。

Element Plus コンポーネント ライブラリを例として、Button コンポーネントと Input コンポーネントのみを使用する必要があると仮定すると、次のようにインポートできます。


import {
    
     ElButton, ElInput } from 'element-plus';

この方法では、ボタン コンポーネントと入力コンポーネントのコードのみが最終ビルド製品にパッケージ化され、使用されない他のコンポーネントのコードは省略されます。

3. 必要なコンポーネントを登録します。

Vue 3 では、app.component メソッドを使用して必要なコンポーネントを登録できます。


import {
    
     createApp } from 'vue';
import {
    
     ElButton, ElInput } from 'element-plus';

import App from './App.vue';

const app = createApp(App);

// 注册所需的组件
app.component('ElButton', ElButton);
app.component('ElInput', ElInput);

app.mount('#app');

上記のコードでは、テンプレートで使用できるように、app.component メソッドを通じて Button コンポーネントと Input コンポーネントをそれぞれ登録しました。

上記の手順を通じて、Tree-Shaking はボタンと入力のみが使用されていることを自動的に検出し、その他の未使用のコンポーネントが削除されるため、最終的なビルド製品のサイズが削減されます。

すべてのライブラリやフレームワークが Tree-Shaking をサポートしているわけではないことに注意してください。そのため、使用するサードパーティ コンポーネント ライブラリが Tree-Shaking に適合しているか、対応するオンデマンド インポート方法を提供していることを確認してください。

Tree-Shaking の使用法と効果を詳しく説明するサンプル コードをいくつか提供します。以下は、Vue 3 での Tree-Shaking のアプリケーションを示す簡単な例です。

次のようないくつかの関数を含むモジュール ファイル utils.js があるとします。


export function add(a, b) {
    
    
  return a + b;
}

export function subtract(a, b) {
    
    
  return a - b;
}

export function multiply(a, b) {
    
    
  return a * b;
}

export function divide(a, b) {
    
    
  return a / b;
}

export function square(n) {
    
    
  return n * n;
}

ここで、Vue コンポーネント ファイル MyComponent.vue を作成し、その中で加算と減算の 2 つの関数だけを使用してみましょう。

<template>
  <div>
    Result: {
    
    {
    
     result }}
  </div>
</template>

<script>
import {
    
     add, subtract } from './utils.js';

export default {
    
    
  data() {
    
    
    return {
    
    
      result: null
    };
  },
  mounted() {
    
    
    this.calculate();
  },
  methods: {
    
    
    calculate() {
    
    
      this.result = add(5, 3) - subtract(2, 1);
    }
  }
}
</script>

この例では、加算関数と減算関数のみをインポートし、コンポーネントのマウントされたフックで計算を実行します。これら 2 つの関数のみを使用するため、Tree-Shaking の最適化により、未使用の関数が自動的に削除されます。

パッケージ出力をビルドすると、Tree-Shaking はコード内の依存関係を分析し、使用される加算関数と減算関数のみを保持し、未使用の関数を削除します。これにより、パックのサイズが最小限に抑えられます。

上の例では、2 つの関数のみを使用し、参照されていない他の関数は使用していないため、Tree-Shaking の効果は非常に明白です。Tree-Shaking により、最終的にパッケージ化されたコードには、未使用の関数ではなく、使用された関数のみが含まれます。

Tree-Shaking を実装するには、ビルド ツール (Webpack など) が正しく構成され、対応する最適化オプションが有効になっていることを確認する必要があることに注意してください。

上記の例が、Vue 3 における Tree-Shaking の使用法と役割を明確に示していることを願っています。この件に関してさらにご質問がございましたら、お気軽にお問い合わせください。

Guess you like

Origin blog.csdn.net/qq_37609787/article/details/131227146