ホームページ > ウェブフロントエンド > jsチュートリアル > アロー関数を使用すると Vue の計算プロパティが更新されないのはなぜですか?

アロー関数を使用すると Vue の計算プロパティが更新されないのはなぜですか?

Susan Sarandon
リリース: 2024-11-29 03:05:10
オリジナル
511 人が閲覧しました

Why Doesn't My Vue Computed Property Update When Using Arrow Functions?

Vue の計算プロパティでのアロー関数の使用

Vue では、アロー関数を使用して計算プロパティを定義できます。ただし、アロー関数を使用すると、計算された要素の色が変わらないという問題が発生する可能性があります。

元のコードと変更されたコードの比較

元のコード従来の関数構文を使用して計算プロパティを定義します:

computed: {
  switchRed: function() {
    return { red: this.turnRed };
  },
  switchGreen: function() {
    return { green: this.turnGreen };
  },
  switchBlue: function() {
    return { blue: this.turnBlue };
  }
}
ログイン後にコピー

アロー関数を使用するようにコードを変更した後、問題が発生します:

computed: {
  switchRed: () => {
    return { red: this.turnRed };
  },
  switchGreen: () => {
    return { green: this.turnGreen };
  },
  switchBlue: () => {
    return { blue: this.turnBlue };
  }
}
ログイン後にコピー

根本原因

問題はアロー関数の使用にあります。アロー関数は親から this コンテキストを継承しますが、従来の関数構文は this コンテキストを Vue インスタンスにバインドします。計算プロパティでアロー関数を使用すると、これは Vue インスタンスにバインドされず、計算要素の色の更新に失敗します。

解決策

この問題を解決するには、計算されたプロパティに従来の関数構文を使用することをお勧めします。あるいは、メソッドにアロー関数を使用することもできますが、bind メソッドまたは apply メソッドを使用してこれを Vue インスタンスに明示的にバインドすることが重要です。

以上がアロー関数を使用すると Vue の計算プロパティが更新されないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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