ホームページ  >  記事  >  ウェブフロントエンド  >  Vue は、コンピューテッドとウォッチの違いと使用シナリオを深く理解しています。

Vue は、コンピューテッドとウォッチの違いと使用シナリオを深く理解しています。

王林
王林オリジナル
2023-06-09 16:14:131016ブラウズ

Vue は、computed と watch の違いと使用シナリオを深く理解しています

Vue は、シンプル、効率的、柔軟なフロントエンド フレームワークであり、多くの優れた機能を備えていますが、そのうちの 2 つは最も重要ですそのうち計算されて監視されます。これらの機能は両方とも、Vue アプリケーションで頻繁に発生するデータを処理するために使用できますが、その使用方法はまったく異なります。この記事では、コンピューテッドとウォッチの違いと適用可能なシナリオを詳しく掘り下げ、いくつかの実践的な経験とテクニックを読者に提供します。

Computed は Vue の計算プロパティであり、データが変更されたときにデータを自動的に更新するために使用され、キャッシュすることができます。 「計算済み」は、動的に処理する必要があるデータとして理解できます。これらのデータは、次の例のように、他のデータのステータスに依存します:

<template>
  <div>
      <p>商品价格:{{ price }}</p>
      <p>折扣价格:{{ salePrice }}</p>
  </div>
</template>

<script>
export default {
  data() {
    return {
      originalPrice: 100,
      discount: 0.8
    };
  },
  computed: {
    price() {
      return this.originalPrice;
    },
    salePrice() {
      return this.originalPrice * this.discount;
    }
  }
}
</script>

この例では、元の価格と割引価格を定義します, そして、製品価格と割引価格は、計算された属性を使用して個別に計算されます。計算された属性内のコードは自動的に実行され、データが変更されるたびに再計算され、結果がキャッシュされるため、計算の繰り返しによる効率の問題が回避されます。

対照的に、watch は Vue のオブザーバー機能であり、データが変更されたときに関数に応答するために使用されます。 watch は変数の変更を監視し、次の例のように変数が変更されたときに特定の操作を実行できます。

<template>
  <div>
      <input v-model="inputValue" />
      <p>{{ displayValue }}</p>
  </div>
</template>

<script>
export default {
  data() {
    return {
      inputValue: "",
      displayValue: ""
    };
  },
  watch: {
    inputValue(newValue) {
      this.displayValue = newValue.toUpperCase();
    }
  }
}
</script>

この例では、入力ボックスと p ラベルを定義します。これらはそれぞれユーザー入力とユーザーです。入力された大文字が表示されます。 inputValue 変数の応答関数は watch 属性で定義されており、inputValue 変数が変更されると、displayValue 変数の値も変更されます。監視応答関数は何も返さず、Vue インスタンスのデータを変更することに注意してください。

要約すると、computed と watch の違いは、それらが受動的な計算であるか、応答的な処理であるかにあります。 Computed は、任意のデータの変更に基づいて特別な処理または書式設定を実行する必要がある場合に使用する必要があります。データに動的に応答する必要があり、実行する必要がある特定の操作がある場合は、watch を使用する必要があります。最後に、これらは互いに独立しており、計算されたプロパティは監視によって観察されず、その逆も同様であることに注意することが重要です。

(この記事のコード スニペットは Vue 公式ドキュメントからのものです。)

以上がVue は、コンピューテッドとウォッチの違いと使用シナリオを深く理解しています。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。