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マージ操作
1.ページを XML タイプとして宣言しないでください。ページでは UTF-8 または UTF-16...
この記事では、検証コード機能を実装するためのvue+spring bootの具体的なコードを例として...
1. データベースを作成する 2. テーブルを作成する1. deptテーブルを作成する テーブル「d...
序文長い間さまざまな資料を読んで、ついに selenium+testng のパラメータ化の問題を解決...
centos-DVD1バージョンシステムの固定IPアドレスは192.168.159.128で、cen...
序文データの一貫性と整合性を確保するために、あらゆるデータベースにはロック メカニズムが備わっていま...
数日前、バスで仕事に行きました。バスのカードリーダーの実際の使用シーンを実際に見て、カードリーダーの...
目次古典的なアプローチ質問その他の質問注意が必要な問題古典的なアプローチご存知のとおり、アカウントの...
コードをコピーコードは次のとおりです。 <!DOCTYPE html> <html...
前述のこの記事はとても短いです〜主な目的は、モバイル端末上のクリックと js イベントのメカニズムに...
ブラウザの非overflow:auto要素resize伸縮機能を利用して、JavaScript を使...
今日もとても実践的な事例です。名前を聞くだけで高度で難しそうですよね?今日はカルーセル画像の真髄を簡...
HTML 検証はHTML 検証を指します。これは、HTML ドキュメントを分析し、標準の HTML ...
1. 既存のモジュールを表示する nginx の sbin ディレクトリに nginx の sbin...
原因このブログを書いた理由は、今日Leetcodeの日課問題をやっていたからです。文字列を整数(at...