1. 計算入門
//基本的な使用方法 {{msg}} <input v-model="名前" /> //計算されたプロパティ:{ メッセージ:関数(){ this.name を返す } } 入力ボックスでは、 注意: 1.1、get と set の使用方法<input v-model="full"><br> <input v-model="first" > <br> <input v-model="second" > データ(){ 戻る { 第一に、「美しさ」 2番目:「シスター」 } }, 計算:{ 満杯: get(){ //現在のプロパティ値を読み取る必要があるときにコールバック関数が実行され、関連するデータに基づいて現在のプロパティの値が計算され、返されます。 return this.first + ' ' + this.second }, set(val){ //現在の属性値の変更を監視し、属性値が変更されたときに実行し、関連する属性データを更新します。let names = val.split(' ') this.first = 名前[0] this.second = 名前[1] } } } get メソッド: set メソッド: 1.2. 計算された属性キャッシュメソッドを通じてデータを結合することによっても、この効果を実現できます。コードは次のとおりです。 <div> {{full() }} </div> データ(){ 戻る { 第一に、「美しさ」 2番目:「シスター」 } }, 方法:{ 満杯(){ this.first + ' ' + this.second を返す } }, ページ内では、データが複数回使用される場合があります。computed <div> 計算値: {{full}} {{full}} {{full}} {{full}} </div> <div> メソッドは値を計算します: {{fullt}} {{fullt}} {{fullt}} {{fullt}} </div> データ(){ 戻る { 第一に、「美しさ」 2番目:「シスター」 } }, 計算:{ フル:関数(){ console.log('計算済み') this.first + ' ' + this.second を返す } }, 方法:{ フルト(){ console.log('メソッド') this.first + ' ' + this.second を返す } } 実行結果は次のとおりです。 結果から、メソッドによって取得されたデータは、複数回使用された後に複数回再計算する必要があることが簡単にわかりますが、計算されたプロパティはそうではありません。代わりに、それらは応答依存関係に基づいてキャッシュされ、依存プロパティ値が変更された場合にのみ再計算されます。計算量が少ないため、パフォーマンスが向上します。 2. 時計の紹介
デモ1:シンプルなデータの監視 <input v-model="first" > <br> データ(){ 戻る { 第一に、「美しさ」 } }, 時計:{ 最初(新しい値、古い値){ console.log('newVal',newVal) // first の最新の値 console.log('oldVal',oldVal) // first の前の値} }, // 最初の値を変更すると、最新の値がすぐに印刷されます デモ2:監視オブジェクト オブジェクトを監視する場合は、ディープ モニタリングを使用する必要があります。 <input v-model="per.name"> データ(){ 戻る { あたり: 名前:'Qianqian', 年齢:'18' } } }, 時計:{ あたり: ハンドラ(古い値、新しい値){ コンソールログ('newVal',newVal) コンソールログ('oldVal',oldVal) }, 深い:真、 } },
デモ3:オブジェクトの単一のプロパティを監視する // 方法 1: オブジェクトのプロパティを直接参照する <input v-model="per.name"> データ(){ 戻る { あたり: 名前:'Qianqian', 年齢:'18' } } }, 時計:{ 'per.name':function(newVal,oldVal){ コンソールログ('newVal->',newVal) コンソールログ('oldVal->',oldVal) } }, 次のように、 // 方法2: 計算値を使用する <input v-model="per.name"> データ(){ 戻る { あたり: 名前:'Qianqian', 年齢:'18' } } }, 時計:{ パーネーム(){ console.log('名前が変更されました') } }, 計算:{ パーネーム:関数(){ this.per.name を返す } }, デモ4: 小道具:{ mm:文字列 }, //即時使用はしない 時計:{ mm(新しいV、古いV){ コンソールログ('newV',newV) コンソールログ('oldV',oldV) } } //即時使用 時計:{ ミリメートル:{ 即時:true、 ハンドラ(newV,oldV){ コンソールログ('newV',newV) コンソールログ('oldV',oldV) } }
3. 両者の違い3.1. 計算された
計算:{ //プロパティ値は関数です perName:function(){ this.per.name を返す }, //属性値は属性値フルです:{ 得る(){ }、 設定(値){ } } }, 3.2. 時計の場合
IV. 応用シナリオ数値計算が必要で、他のデータに依存する場合は、 非同期操作や、データの変更時にオーバーヘッドの高い操作を実行する必要がある場合は、 要約: Vue の 以下もご興味があるかもしれません:
|
<<: Nginx 構成 80 ポート アクセス 8080 とプロジェクト名アドレス メソッド分析
>>: 異なる列を持つテーブルのクエリ結果のSQLマージ操作
WeChat 8.0 アップデートの主な特徴は、アニメーション絵文字のサポートです。送信するメッセー...
ソケットオプション機能機能: ソケットファイル記述子の属性の読み取りと設定に使用されるメソッド #i...
この記事では主に、MySQL でテーブルを削除する 3 つの操作、つまり delete ステートメン...
目次1. デモプロジェクト1.1 インターフェースの準備1.2 構成の準備2. Dockerがリモー...
1. 同じタイプの空の要素を追加し、要素の CSS 属性 clear:both; を設定します。 ...
目次Vue の keep-alive 組み込みコンポーネントの使用でもこのアルゴリズムが使用されます...
この記事では、Vueを使用してショッピングカートの数量を変更する方法を紹介します。具体的な内容は次の...
1 問題の説明: 1.1 Windows 10 に VMware を初めてインストールする場合、また...
nginx Nginx (エンジン x) は、高性能な HTTP およびリバース プロキシ サーバー...
初めてwampをインストールした後、すべてのサービスが正常に使用できますが、再起動するとwampのア...
1. axiosプラグインをダウンロードする cnpm インストール axios -S 2. mai...
非直交マージンマージンを使用するとマージが発生します次のプロパティはマージンの結合を防止します。国境...
本日、ローカル開発環境で突然「入力ファイルが指定されていません」というエラーが発生してしまいました。...
1. インストール1. MySQLをダウンロードするダウンロードアドレス: リンクアドレスブラウザで...
getElementByIdはオブジェクトを取得できませんブラウザがドキュメントを解析するときにはシ...