ホームページ > ウェブフロントエンド > jsチュートリアル > vue の計算プロパティとリスナーの実践的なプロジェクトの詳細な説明

vue の計算プロパティとリスナーの実践的なプロジェクトの詳細な説明

php中世界最好的语言
リリース: 2018-06-06 14:33:37
オリジナル
2440 人が閲覧しました

今回は、Vue の計算プロパティとリスナーの実践プロジェクトについて詳しく説明します。Vue の計算プロパティとリスナーの実践プロジェクトの注意点を以下に示します。

計算されたプロパティ

テンプレート内の式は非常に便利ですが、単純な操作向けに設計されています。テンプレートにロジックを入れすぎると、テンプレートが太くなり、保守が困難になる可能性があります。例:

<p id="example">
 {{ message.split('').reverse().join('') }}
</p>
ログイン後にコピー

ここで、テンプレートは単純な宣言ロジックではなくなりました。ここで変数メッセージの反転された文字列を表示したいことがわかるまで、しばらく観察する必要があります。ここで反転した文字列をテンプレート内で複数回参照したい場合、対処がさらに難しくなります。

したがって、複雑なロジックの場合は、計算されたプロパティを使用する必要があります。

基本的な例

<p id="app">
 {{fullName}}
</p>  
var vm = new Vue({
 el: '#app',
 data: {
  firstName: "王",
  lastName: "小智",
  age: 28
 },
 // 计算属性
 computed: {
   fullName: function () {
     console.log("计算了一次")
     return this.firstName + " " + this.lastName
   }
 }
})
ログイン後にコピー

結果:

Wang Xiaozhi

次に、ブラウザを通じて age 属性の値を変更し、ページを再レンダリングします:

ご覧のとおり、年齢値の計算属性 メソッドは呼び出されないため、lastName や firstName が変更されるなど、計算された属性の値が変更された場合、印刷結果はどうなりますか

ご覧のとおり、計算された属性が変更されると、印刷結果はどうなりますか? 、計算された属性の変更が再計算されます。

計算されたプロパティのキャッシュとメソッド

式の中でメソッドを呼び出すことで同じ効果を達成できることに気づいたかもしれません:

<p>Reversed message: "{{ fullName() }}"</p>
// 在组件中
methods: {
 fullName: function () {
  console.log("计算了一次")
  return this.firstName + " " + this.lastName;
 }
}
ログイン後にコピー

Result:

Wang Xiaozhi

上記も参照して、以下を参照してください。プロセッサは age 属性の値を変更し、ページの再レンダリングを許可します。

ページが再レンダリングされる限り、メソッドは 1 回実行され、計算された属性は関連する依存関係が変更された場合にのみ再評価されます。

なぜキャッシュが必要なのでしょうか?巨大な配列を走査して多くの計算を行う必要がある、計算コストの高いプロパティ A があるとします。その場合、A に依存する他の計算されたプロパティがある可能性があります。キャッシュがなければ、必然的に A のゲッターを複数回実行することになります。キャッシュしたくない場合は、代わりにメソッドを使用してください。

計算プロパティとリスニング プロパティ

リスニング プロパティでも同じ効果を達成できることに気づいたかもしれません:

var vm = new Vue({
 el: '#app',
 data: {
  firstName: "王",
  lastName: "小智",
  age: 28,
  fullName
 },
 // 计算属性
 watch: {
   firstName: function () {
    console.log("计算了一次");
    this.fullNmae = this.firstName + this.lastName;
   },
   lastName: function () {
    console.log("计算了一次")
    this.fullNmae = this.firstName + this.lastName;
   }
 }
})
ログイン後にコピー

結果:

Wang Xiaozhi

また、上記を参照して、次のように変更します。ブラウザー age 属性の値により、ページを再レンダリングできます。

ご覧のとおり、fullname に関連しない変更については、fullName は変更されていません。計算された属性と同様に、キャッシュが存在します。関連する依存関係が変更された場合にのみ、それを再評価して、計算されたプロパティのバージョンと比較する方がはるかに優れていますね。

他のデータが変更されたときに変更する必要があるデータがある場合、特に
AngularJS を以前に使用したことがある場合は、ウォッチを悪用するのが簡単です。ただし、多くの場合、命令型の監視コールバックではなく、計算されたプロパティを使用する方が適切です。

この記事の事例を読んだ後は、その方法を習得したと思います。さらに興味深い情報については、php 中国語 Web サイトの他の関連記事に注目してください。

推奨読書:

jsを使用して画像をbase64に変換する方法

vueルーター動的ルーティング操作サブルーティング

以上がvue の計算プロパティとリスナーの実践的なプロジェクトの詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート