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マージ操作
Node の研究と応用を通じて、NodeJS はシングルスレッド、イベント駆動型、非ブロッキング I...
ステップ1: ディープ「グラフィックドライバー」をインストールするdeepin v20にはデフォルト...
この記事では、例を使用して MySQL の悲観的ロックと楽観的ロックについて説明します。ご参考までに...
目次文字列の長さ: 長さcharAt() charCodeAt()文字列に値が含まれているかどうかを...
この記事では、参考までにVue More Filter Itemウィジェットの実装方法を例として紹介...
a href="#"> リンクをクリックすると、ページがページ上部までスク...
目次デバッガーを使用する理由は何ですか? Chromeデバッガーの基本的な使い方VS Code によ...
IE6 での CSS 背景画像のちらつきバグ (IE6 の背景画像キャッシュの問題) IE6 は、背...
binlog は、すべての mysql dml 操作を記録するバイナリ ログ ファイルです。 bin...
Docker を使用して Angular プロジェクトをデプロイする方法は 2 つあります。1 つは...
<meta name="viewport" content="w...
序文:この記事では主にMySQLのロングトランザクションに関する内容を紹介します。例えば、トランザク...
NULL が頻繁に使用されるのはなぜですか? (1)Javaのnull Java の NullPoi...
目次背景サーバーの依存関係バックエンド構成クロスドメインバックエンド構成の静的リソースアクセスではk...
1. nginx-1.8.1.tar.gzを解凍する2. fastdfs-nginx-module-...