ホームページ > ウェブフロントエンド > Vue.js > Vue3アドバンストテーマComposition APIの使い方

Vue3アドバンストテーマComposition APIの使い方

王林
リリース: 2023-05-21 12:58:12
転載
1100 人が閲覧しました

Composition API とは

Composition API は、コードの可読性、保守性、再利用性を向上させることを目的として、Vue3 で導入された新しい API スタイルです。構成 API は、Vue2 のオプション API とは異なり、関数ベースのプログラミング手法を採用し、コンポーネント内のロジックをより小さな構成可能な関数単位に分解し、より柔軟で効率的なコード構成を実現します。

Vue3 がコンポジション API の使用を推奨する理由

Vue3 がコンポジション API の使用を推奨する主な理由は、コンポーネント ロジックをより適切に整理して再利用するためです。

Vue2 では通常、オプション API を使用します。そこでは、さまざまなオプション (データ、メソッド、計算など) を定義することでコンポーネントの動作を定義します。このアプローチには、次のようないくつかの欠点があります。

  • 関連するコードがさまざまなオプションに分散しているため、大規模なコンポーネントの保守が困難になります。

  • 大規模なコンポーネントでは、コードの再利用が難しいため、重複したロジックが含まれる可能性があります。

  • どのデータ属性がいつ変更されたかを追跡することが困難になる場合があります。

簡単な例を見てみましょう。次のコードはデータを取得するためのロジックを定義します:

import { reactive, onMounted } from 'vue'
import axios from 'axios'
export function useData(url) {
  const data = reactive({
    loading: false,
    error: null,
    items: []
  })
  const fetchData = async () => {
    data.loading = true
    try {
      const response = await axios.get(url)
      data.items = response.data
    } catch (error) {
      data.error = error.message
    }
    data.loading = false
  }
  onMounted(() => {
    fetchData()
  })
  return {
    data,
    fetchData
  }
}
ログイン後にコピー

このロジックでは、データ取得方法、読み込みステータスの処理、エラーのロジックについて説明します。メッセージなどこのロジックを複数のコンポーネントで使用して、コードの重複を避けることができます。

たとえば、次のロジックをコンポーネントで使用します。

import { useData } from './useData'
export default {
  setup() {
    const { data } = useData('https://api.example.com/data')
    return {
      data
    }
  }
}
ログイン後にコピー

もちろん、Vue2 でも mixin を通じて上記の機能を実現できますが、可読性と保守性はそれほど高くありません。構成 API として最適です:

const dataMixin = {
  data() {
    return {
      loading: false,
      error: null,
      items: []
    }
  },
  methods: {
    fetchData() {
      this.loading = true
      axios.get(this.url)
        .then(response => {
          this.items = response.data
        })
        .catch(error => {
          this.error = error.message
        })
        .finally(() => {
          this.loading = false
        })
    }
  },
  mounted() {
    this.fetchData()
  }
}
ログイン後にコピー

次に、コンポーネントで使用します:

export default {
  mixins: [dataMixin],
  data() {
    return {
      url: 'https://api.example.com/data'
    }
  }
}
ログイン後にコピー

mixin を使用すると、パブリック ロジックをコンポーネントに混合できることがわかりますが、いくつかの問題があります。 名前の競合、ライフサイクルフックの呼び出し順序、その他の問題など、混合に関する問題。

以上がVue3アドバンストテーマComposition APIの使い方の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:yisu.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート