Vue 監視プロパティと計算プロパティ

Vue 監視プロパティと計算プロパティ

1. 監視プロパティを監視する

このプロパティは、特定のデータの変更を監視し、対応するコールバック関数の実行をトリガーするために使用されます。

基本的な使用法: オブジェクトの値を持つwatch属性を追加します。オブジェクトの属性名は監視対象のデータであり、属性値はコールバック関数です。この属性名に対応する値が変更されるたびに、コールバック関数がトリガーされて実行されます。

コールバック関数には 2 つのパラメーターがあります。

  • newVal : データが変更された後の値。
  • oldVal : データが変更される前の値。

カウンタ:

<!DOCTYPE html>
<html>
 <ヘッド>
  <メタ文字セット="utf-8" />
  <タイトル></タイトル>
  <script src="./js/vue.js"></script>
 </head>
 <本文>
  <div id="アプリ">
   <div>カウンター {{ shu }}</div>
   <span>変更前: {{ov}}</span>
   <span>変更後: {{nv}}</span>
   <br />
   <button @click="shu++">1つ追加</button>
  </div>
  
  <スクリプト>
  var vm = 新しい Vue({
   el: '#app',
   データ: {
    シュウ:1、
    ov:0,
    0 です
   },
   方法:{
    
   }
  })
  vm.$watch("shu",function(nval,oval){
   vm.$data.ov = 楕円
   vm.$data.nv = nval
  })
  </スクリプト>
 </本文>
</html>

リスナーを追加し、カウンターの値が変更される前の値を変数ovに割り当て、変更後の値を変数nvに割り当てます。

  vm.$watch("shu",function(nval,oval){
   vm.$data.ov = 楕円
   vm.$data.nv = nval
  })


1.

1. ショッピングカート

<!DOCTYPE html>
<html>
 <ヘッド>
  <メタ文字セット="utf-8">
  <タイトル></タイトル>
  <script src="./js/vue.js"></script>
 </head>
 <本文>
  <div id="アプリ">
  <テーブル>
   <tr>
    <th>シリアル番号</th>
    <th>製品名</th>
    <th>製品価格</th>
    <th>購入数量</th>
    <th>オペレーション</th>
   </tr>
   <tr v-for="sp 内の sp">
    <td>{{ sp.id }}</td>
    <td>{{ sp.name }}</td>
    <td>{{ sp.money }}</td>
    <td>
    <button v-on:click="sp.sum=sp.sum-1">-</button>
    {{sp.sum}}
    <button v-on:click="sp.sum=sp.sum+1">+</button>
    </td>
    <td>
     <button v-on:click="sp.sum=0">リセット</button>
    </td>
   </tr>
  </テーブル>
  <div> 要素
   合計金額: {{ getmany() }}
  </div>
  </div>
  <スクリプト>
   var vm = 新しい Vue({
    el: '#app',
    データ: {
     補足:[
      {
       id:1,
       名前:"Apple 13",
       お金:6000、
       合計:1
      },
      {
       id:2,
       名前:"Apple 12",
       お金:5000、
       合計:1
      },
      {
       id:3,
       名前:"Apple 11",
       お金:4000、
       合計:1
      }
     ]
    },
    方法:{
     getmaney:関数(){
      var m = 0;
      for(var x=0;x<this.sps.length;x++){
       m = m + this.sps[x].money * this.sps[x].sum;
      }
      m を返します。
     }
    }
   })
  </スクリプト>
 </本文>
</html>

合計費用は以下のとおりです。

getmaney:関数(){
    var m = 0;
    for(var x=0;x<this.sps.length;x++){
   m = m + this.sps[x].money * this.sps[x].sum;
 }
 m を返します。
}


2. すべて選択し、すべて選択解除する

<!DOCTYPE html>
<html>
 <ヘッド>
  <メタ文字セット="utf-8">
  <タイトル></タイトル>
  <script src="./js/vue.js"></script>
 </head>
 <本文>
  <div id="アプリ">
   <input type="checkbox" id="a" value="a" v-model="che"/>
   <label for="a">a</label>
   <input type="checkbox" id="b" value="b" v-model="che"/>
   <label for="b">b</label>
   <input type="checkbox" v-model="checked" id="bok" v-on:change="ckall()" />
   <label for="box">すべて選択</label>
  </div>
  <スクリプト>
   var vm = 新しい Vue({
    el: '#app',
    データ: {
     チェック済み:false、
     che:[],
     しゅず:["a","b"]
    },
    方法:{
     ccall:関数(){
      //すべてのステータスを選択 if(this.checked){
       this.che = this.shuzu
      }それ以外{
       //すべての選択を解除 this.che=[]
      }
     }
    },
    時計:{
     "che":関数(){
      //すべて選択するかどうかを判定する if(this.che.length == this.shuzu.length){
       this.checked = true
      }それ以外{
       this.checked = false
      }
     }
    }
   })
  </スクリプト>
 </本文>
</html>

2. 計算されたプロパティ

1.計算された

特徴:

  • computedプロパティ オブジェクトでプロパティを計算する方法を定義し、ページ上で {{method name}} を使用して計算結果を表示します。
  • getter/setterを通じてプロパティ データを表示および監視します。
  • 計算されたプロパティはキャッシュされ、 getter複数の読み取りに対して 1 回だけ実行されます。
<!DOCTYPE html>
<html>
 <ヘッド>
  <メタ文字セット="utf-8">
  <タイトル></タイトル>
  <script src="./js/vue.js"></script>
 </head>
 <本文>
  <div id="アプリ">
   <p>{{ 混乱 }}</p>
   <p>{{ レメス }}</p>
   <p>{{ mess.split('').reverse().join('') }}</p>
  </div>
  <スクリプト>
   var vm = 新しい Vue({
    el: '#app',
    データ:{
     混乱:'abcd'
    },
    計算: {
     remess:関数(){
      this.mess.split('').reverse().join('') を返します
     }
    }
   })
  </スクリプト>
 </本文>
</html>

2.方法

computed依存関係キャッシュに基づいて行われ、関連する依存関係が変更された場合にのみ再評価されます。 methodsを使用すると、再レンダリング時に関数が常に再度呼び出されます。

<!DOCTYPE html>
<html>
 <ヘッド>
  <メタ文字セット="utf-8">
  <タイトル></タイトル>
  <script src="./js/vue.js"></script>
 </head>
 <本文>
  <div id="アプリ">
   <input v-model="mess" />
   <p>{{ 混乱 }}</p>
   <p>{{ レメス }}</p>
   <p>{{ remess2() }}</p>
  </div>
  <スクリプト>
   var vm = 新しい Vue({
    el: '#app',
    データ:{
     混乱:'abcd'
    },
    計算: {
     remess:関数(){
      this.mess.split('').reverse().join('') を返します
     }
    },
    メソッド: {
     remess2:関数(){
      this.mess.split('').reverse().join('') を返します
     }
    }
   })
  </スクリプト>
 </本文>
</html>

3. セッター

ページが特定のデータを取得すると、まずデータ内を検索します。データが見つからない場合は、計算属性内を検索します。計算属性内のデータを取得すると、get メソッドが自動的に実行され、set メソッドも提供されます。 computedプロパティにはデフォルトではgetterのみがありますが、必要に応じてセッターを提供することもできます。

<!DOCTYPE html>
<html>
 <ヘッド>
  <メタ文字セット="utf-8">
  <タイトル></タイトル>
  <script src="./js/vue.js"></script>
 </head>
 <本文>
  <div id="アプリ">
   <p>{{ サイト }}</p>
  </div>
  <スクリプト>
   var vm = 新しい Vue({
    el: '#app',
    データ: {
     名前: 'xiaowang',
     '01' の
    },
    計算:{
     サイト:{
      取得: 関数(){
       this.name+' '+this.cls を返す
      },
      設定: 関数(値){
       var names = Value.split('|')
       this.name = 名前[0]
       this.cls = 名前[1]
      }
     }
    }
   })
   vm.site = 'xiaowang|01';
   document.write('name:'+vm.name);
   document.write('<br>');
   document.write('class:'+vm.cls);
  </スクリプト>
 </本文>
</html>

Vue リスニング プロパティと計算プロパティに関するこの記事はこれで終わりです。Vue リスニング プロパティと計算プロパティに関するより関連性の高いコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Vue 計算プロパティ実装トランスクリプト
  • Vue の計算プロパティとプロパティリスニングについての簡単な説明
  • Vue の計算プロパティ
  • Vue の計算プロパティの紹介
  • Vueは計算プロパティを使用して動的スライダーの作成を完了します
  • Vue の計算プロパティとデータ取得方法
  • Vue の計算プロパティをご存知ですか?
  • Vueの計算プロパティ名ケースの3つの実装方法

<<:  自動検索提案機能のスタイルファイルを入力します: suggestion.css

>>:  CSSは2つの要素をブレンドする効果(スティッキー効果)を実現します。

推薦する

Nginx で Http、Https、WS、WSS を設定する方法

前面に書かれた今日のインターネット分野では、Nginx は最も広く使用されているプロキシ サーバーの...

データベースクエリの最適化: サブクエリの最適化

1. 事例会社のトップ以外の従業員全員を年齢別にグループ化します。 t_emp で id が存在しな...

Apache での ModSecurity のインストール、有効化、および構成

ModSecurity は、Web サーバーに入るすべてのパケットをチェックする強力なパケット フィ...

MySQL 5.7.17 圧縮パッケージのインストールと設定方法のグラフィックチュートリアル

インターネット上にはMySQL 5.7.17のインストールチュートリアルがほとんどなく不十分なので、...

MySQL無料インストールバージョンの設定チュートリアル

この記事では、参考までにMySQLの無料インストール構成チュートリアルを紹介します。具体的な内容は次...

mysql5.7.20 のインストールと設定方法のグラフィック チュートリアル (mac)

MySQL 5.7.20のインストールと設定方法のグラフィックチュートリアルをあなたと共有します1...

Nginx は高可用性クラスタ構築を実装します (Keepalived+Haproxy+Nginx)

1. コンポーネントと実装機能Keepalived: Haproxy サービスの高可用性を実現し、...

MySQL を使用して Excel でデータ生成を完了する方法

Excel は、データ分析に最もよく使用されるツールです。この記事では、MySQL と Excel ...

MySQL 8.0.19 winx64 インストールチュートリアルと Windows 10 での初期パスワードの変更

この記事では、参考までにMySQL 8.0.19 winx64のインストールチュートリアルを紹介しま...

CSSの4種類の配置の違いの詳細な説明

フロントエンド開発でよく使われるCSSの配置方法は、位置決めには、通常位置決め、相対位置決め、絶対位...

MySQL5.7.17 winx64 インストール バージョン構成方法 Windows Server 2008 R2 でのグラフィック チュートリアル

参考までに、Winでmysql5.7をインストールします。具体的な内容は次のとおりです。 @Auth...

Tomcat ディレクトリ構造の詳細な紹介

tomcat の解凍されたディレクトリを開くと、次のディレクトリ構造が表示されます。 1.Tomca...

MySQLの文字セットを変更する方法

1. MySQLの文字セットを確認する '%char%' のような変数を表示します。...

Linux シェル環境での Zabbix API の使用

Linux シェル環境で直接呼び出すことができます。公式 Web サイトによると、Zabbix のデ...

廃止された Docker は Podman に置き換えられますか?

Kubernetes チームは最近、最新バージョンの Docker でサポートされている機能を廃止...