Vueの計算プロパティの詳細な説明

Vueの計算プロパティの詳細な説明

1. 計算属性とは何ですか? 簡単に言えば、計算された結果が属性に保存されるもので、キャッシュとして考えることができます。

<!DOCTYPE html>
<html lang="ja">
<ヘッド>
    <メタ文字セット="UTF-8">
    <title>タイトル</title>
</head>
<本文>
<div id="アプリ">
    <!-- これは currentTime1() であり、括弧はメソッド呼び出し用であることに注意してください。-->
    <p>現在の時刻1: {{現在の時刻1()}}}</p>
    <!--ここでは currentTime1 は括弧で囲まれておらず、属性を通じて呼び出されます-->
    <p>現在の時刻2: {{現在の時刻2}}</p>
</div>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/vue.min.js"></script>
<スクリプト>
    var vm = 新しい Vue({
        el: "#app",
        データ: {
            メッセージ: 「hello vue!」
        },
        メソッド: {
            currentTime1: 関数() {
                // 現在のタイムスタンプを返します return Date.now();
            }
        },
        計算: {
            /*注: ここには計算プロパティがあり、メソッドと計算メソッドの名前は同じにすることはできません。
                   同じ名前のメソッドのみが呼び出されます*/
            currentTime2: 関数 () {
                このメッセージ;
                // 現在のタイムスタンプを返します return Date.now();
            }
        }
    });
</スクリプト>
</本文>
</html>

実行結果:

ここに画像の説明を挿入

一見すると違いがないように見えるかもしれません。

しかし、よく考えてみると、一方はメソッドであり、もう一方はプロパティです。

以下のように表示されます。

<div id="アプリ">
    <!-- これは currentTime1() であり、括弧はメソッド呼び出し用であることに注意してください。-->
    <p>現在の時刻1: {{現在の時刻1()}}}</p>
    <!--ここでは currentTime1 は括弧で囲まれておらず、属性を通じて呼び出されます-->
    <p>現在の時刻2: {{現在の時刻2}}</p>
</div>

重要なポイント: 属性は値を格納します。新しい値が入力されたときのみ変更されます。それ以外の場合は、キャッシュと同じになります。これを見てみましょう:

ここに画像の説明を挿入

説明すると:

1. 1 と 2 から、一方がメソッドで、もう一方がプロパティであることがわかります。メソッドを使用してプロパティを呼び出すことは絶対にできません。

2. 1 と 3 では、メソッド呼び出しの値が常に変化しているのに対し、属性呼び出しの値は変化していないことがわかります。これはキャッシュ メカニズムと同じです。

3. 3、4、5 から、関数内の値を変更すると、キャッシュ内の値を変更するのと同じになり、値が更新されることがわかります。

要約する

メソッドが呼び出されると、その都度計算を行う必要があります。計算処理があるため、必然的にシステムのオーバーヘッドが発生します。結果が頻繁に変わらない場合はどうなるでしょうか。この時点で、結果をキャッシュすることを検討できます。これは、コンピュータのプロパティを使用して簡単に実行できます。コンピュータ プロパティの主な機能は、システムのオーバーヘッドを節約するために、頻繁に変更されない計算結果をキャッシュすることです。 ----- 分かりましたか、友人たち?

この記事はこれで終わりです。皆さんのお役に立てれば幸いです。また、123WORDPRESS.COM のその他のコンテンツにも注目していただければ幸いです。

以下もご興味があるかもしれません:
  • Vueは計算プロパティを使用して動的スライダーの作成を完了します
  • Vue の計算プロパティの紹介
  • Vue の計算プロパティ
  • Vue で計算プロパティを使用する際の知識ポイントのまとめ

<<:  Linux 負荷分散 LVS の詳細な理解

>>:  HTML でスクロールバーを使用する際のヒントを共有する

推薦する

Navicat for SQLite で中国語データを CSV にインポートする方法

この記事では、参考までに、csv中国語データをNavicat for SQLiteにインポートする具...

docker に openjdk をインストールして jar パッケージを実行する方法

画像をダウンロード docker プル openjdkデータボリュームの作成java_appデータボ...

GZIP 圧縮 Tomcat と Web パフォーマンスの改善プロセス図

1. はじめに最近、あるプロジェクトに取り組んでいたのですが、サーバーからクライアントに返される J...

小さな三角形の実装コードを含む CSS ナビゲーション バー メニュー

多くの Web ページにはナビゲーション バーに小さな三角形があり、この機能を実装するのは実は非常に...

Vue は Tencent TIM インスタント メッセージングを統合します

この記事では主に、Tencent TIM インスタント メッセージングを Vue と統合する方法を紹...

Nginx+SSL による双方向認証を実装するためのサンプル コード

まずディレクトリを作成する cd /etc/nginx mkdir ssl cd ssl CA と自...

VueはAmapを使用して都市の位置特定を実現

この記事では、Amapを使用して都市の位置特定を実現するVueの具体的なコードを参考までに共有します...

Windows 10 の仮想マシンに Mac システムをインストールするグラフィック チュートリアル

1. 仮想マシンバージョン15.5.1をダウンロードする公式サイトから直接最新バージョンをダウンロー...

Apple Watchのインタラクションデザインにおける4つの全く異なる体験が明らかに

今日も Watch アプリのデザインに関する話です。私はケーススタディが大好きなので、同じトピックを...

Maven で tomcat8-maven-plugin プラグインを使用する詳細なチュートリアル

オンラインで多くの記事を検索しましたが、解決策は見つかりませんでした。次のように、tomcat7-m...

CentOS 8にdockerをインストールする最も詳細な方法

CentOS 8にDockerをインストールする公式ドキュメント: https://docs.doc...

MySQL 起動エラー 1067 および文字セットを変更して再起動した後の無効な回復

公式サイトからmysql-5.6.37-winx64.zipの解凍バージョンをダウンロードし、構成フ...

JavaScript でドラッグ可能なプログレスバーを実装する

この記事では、ドラッグ可能なプログレスバーを実装するためのJavaScriptの具体的なコードを参考...

mysql8.0 パスワードを忘れた場合の修正とネットコマンドのサービス名が無効になる問題

cmdにnet start mysqlと入力すると、プロンプトが表示されます: サービス名が無効です...