Vue を使用してプロパティを計算するタイミングを知っていますか?計算されたプロパティを使用するにはどうすればよいですか?次の記事では、Vue 計算プロパティについて理解し、Vue 計算プロパティの基本的な使用方法を紹介します。
計算されたプロパティ
テンプレートにロジックを入れすぎて、テンプレートが重くなりすぎて保守が困難になる場合があります。例:
<div id="app"> {{ message.split('').reverse().join('') }} </div>
このような状況では、変数メッセージを表示する反転された文字列がここにあることを理解するために、しばらく見てみる必要があります。反転された文字を使用したい場合は、テンプレート内で複数回文字列を張る場合はさらに面倒になります。したがって、複雑なロジックを扱う場合は、計算されたプロパティを使用する必要があります。 [関連する推奨事項: "vue.js チュートリアル"]
基本的な使用法
計算されたプロパティは、Vue 構成オブジェクト内のプロパティであり、次のように使用されます。
<div id="app"> <!-- 计算属性的值可以像data数据一样,直接被使用 --> {{ someComputed }} </div> const vm = new Vue({ el: '#app', computed: { // 返回的值,就是计算属性的值 someComputed () { return 'some values' } } })
たとえば、文字列の反転文字列を取得したい場合は、計算されたプロパティを使用してそれを行うことができます:
<div id="app"> <p>原始字符串: "{{ msg }}"</p> <p>翻转字符处啊: "{{ reversedMsg }}"</p> </div> const vm = new Vue({ el: '#app', data: { msg: 'Hello' }, computed: { reversedMsg: function () { return this.msg.split('').reverse().join(''); } } })
reversedMsg の値が依存していることがわかります。 msg 値に依存するため、msg の値を変更すると、それに応じて reversedMsg の値も変更されます。
計算プロパティとメソッド
実際、上記の関数は、次のようなメソッドを使用して実現することもできます。式 メソッドでも同じ効果を実現できますが、計算されたプロパティを使用することとメソッドを使用することには本質的な違いがあります。メソッドを使用する場合、ページが再レンダリングされるたびに、次のような対応するメソッドが再実行されます。
<div id="app"> <p>原始字符串: "{{ msg }}"</p> <p>翻转字符串: "{{ reversedMsg() }}"</p> </div> const vm = new Vue({ el: '#app', data: { msg: 'Hello' }, methods: { reversedMsg: function () { return this.msg.split('').reverse().join(''); } } })
上の例では、name の値が変更されると、この時点では、メソッド実行文字列がコンソールに表示されます。これは、reversedMsg 関数が実行されたことを意味しますが、変更されたデータは何の関係もないため、このメソッドを実行する必要はありません。この関数内のロジックが非常に複雑な場合、パフォーマンスの点でも消費になります。
しかし、計算属性を使用すると、次のような現象は発生しません。
<div id="app"> <p>{{ name }}</p> <p>{{ reversedMsg() }}</p> </div> const vm = new Vue({ el: '#app', data: { msg: 'Hello', name: 'shanshan' }, methods: { reversedMsg: function () { console.log('方法执行啦'); return this.msg.split('').reverse().join(''); } } }) vm.name = 'duyi';
この時点で、データ名を再割り当てすると、計算属性が実行されないことがわかります。 。したがって、計算プロパティとメソッドの最も重要な違いは次のとおりです:
計算プロパティは応答性の依存関係に基づいてキャッシュされます. 計算プロパティの値は、それが依存するデータが存在する限り、常にキャッシュに格納されます。計算されたプロパティにアクセスするたびに、関数を再度実行するのではなく、キャッシュされた結果がすぐに返されます。このメソッドは毎回再レンダリングをトリガーし、メソッドを呼び出すと常に関数が再度実行されます。 それでは、なぜキャッシュが必要なのでしょうか?
計算された属性 A があり、巨大な配列を走査して膨大な計算を行う必要があるとします。次に、この計算された属性 A を使用する必要があります。キャッシュがない場合、A の関数を再度実行することになるため、パフォーマンスのオーバーヘッドが非常に大きくなります。
詳細な計算プロパティ計算プロパティは、関数として記述するだけでなく、オブジェクトとしても記述することができます。オブジェクトには 2 つのプロパティがあります。 getter&setter はどちらも関数であり、次のように記述します。
const vm = new Vue({ el: '#app', data: { msg: 'Hello', name: 'shanshan' }, computed: { reversedMsg: function () { console.log('计算执行啦'); return this.msg.split('').reverse().join(''); } } }) vm.name = 'duyi';getter reading
前のステップでは、計算されたプロパティを関数として直接記述しました。それがゲッター関数です。つまり、計算されたプロパティにはデフォルトでゲッターのみが含まれます。このゲッターは、自動的に Vue インスタンスにバインドされます。
いつ実行されますか?
計算された属性を取得すると、get 関数が実行されます。
const vm = new Vue({ el: '#app', computed: { fullName: { getter () { // 一些代码 }, setter () { // 一些代码 } } } })setter 設定
オプションで、計算されたプロパティに値を再割り当てするときに set 関数が実行されます。パラメータ: リセットする値。セッターのこれは、自動的に Vue インスタンスにバインドされます。
const vm = new Vue({ el: '#app', data: { msg: 'Hello' }, computed: { reversedMsg: { getter () { return this.msg.split('').reverse().join(''); } } } })
計算されたプロパティに値が割り当てられても、計算されたプロパティは変更されないことに注意してください。繰り返しになりますが、計算されたプロパティは、依存する応答プロパティが変更された場合にのみ再計算されます。
Practice_Name フィルタリング
const vm = new Vue({ el: '#app', data: { msg: 'Hello', firstStr: '' }, computed: { reversedMsg: { getter () { return this.msg.split('').reverse().join(''); }, setter (newVal) { this.firstStr = newVal[0]; } } } })
Practice_すべての製品を選択
personArr: [ { name: '', src: '.jpg', des: '颈椎不好', sex: 'm', id: '056482' }, { name: '', src: '.jpg', des: '我是谁', sex: 'f', id: '157894' }, { name: '', src: '.jpg', des: '我长得很好看', sex: 'f', id: '2849245' }, { name: '', src: '.jpeg', des: '你没有见过陌生的脸', sex: 'm', id: '348515' }, { name: '', src: '.jpeg', des: '瓜皮刘', sex: 'm', id: '478454' } ]
プログラミング関連の知識について詳しくは、
プログラミング入門以上がVue で計算プロパティを使用する方法を 1 つの記事で学習しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

Vue.jsは、2014年にYou YuxiがリリースしたプログレッシブJavaScriptフレームワークで、ユーザーインターフェイスを構築します。その中心的な利点には、次のものが含まれます。1。レスポンシブデータバインディング、データ変更の自動更新ビュー。 2。コンポーネントの開発では、UIは独立した再利用可能なコンポーネントに分割できます。

Netflixは、Reactをフロントエンドフレームワークとして使用します。 1)Reactのコンポーネント開発モデルと強力なエコシステムが、Netflixがそれを選択した主な理由です。 2)コンポーネント化により、Netflixは複雑なインターフェイスをビデオプレーヤー、推奨リスト、ユーザーコメントなどの管理可能なチャンクに分割します。 3)Reactの仮想DOMおよびコンポーネントライフサイクルは、レンダリング効率とユーザーインタラクション管理を最適化します。

Netflixのフロントエンドテクノロジーでの選択は、主にパフォーマンスの最適化、スケーラビリティ、ユーザーエクスペリエンスの3つの側面に焦点を当てています。 1。パフォーマンスの最適化:Netflixは、Reactをメインフレームワークとして選択し、SpeedCurveやBoomerangなどのツールを開発して、ユーザーエクスペリエンスを監視および最適化しました。 2。スケーラビリティ:マイクロフロントエンドアーキテクチャを採用し、アプリケーションを独立したモジュールに分割し、開発効率とシステムのスケーラビリティを改善します。 3.ユーザーエクスペリエンス:Netflixは、Material-UIコンポーネントライブラリを使用して、A/Bテストとユーザーフィードバックを介してインターフェイスを継続的に最適化して、一貫性と美学を確保します。

netflixusesaCustomframeworkは、「ギボン」ビルトンリアクト、notreactorvuedirectly.1)チームエクスペリエンス:seice basedonfamperivity.2)projectomplerprojects:vueforsplerprojects、racefforcomplexones.3)customeforsneeds:reactofforsmorefloficailie.

Netflixは、主に、パフォーマンス、スケーラビリティ、開発効率、エコシステム、技術的な負債、およびフレームワーク選択におけるメンテナンスコストを考慮しています。 1。パフォーマンスとスケーラビリティ:JavaとSpringbootが選択され、大規模なデータと高い同時リクエストを効率的に処理します。 2。開発効率とエコシステム:Reactを使用して、フロントエンド開発効率を向上させ、その豊富なエコシステムを利用します。 3.技術的な負債とメンテナンスコスト:node.jsを選択してマイクロサービスを構築して、メンテナンスコストと技術的債務を削減します。

Netflixは、主にReactをフロントエンドフレームワークとして使用し、特定の機能のためにVUEによって補足されます。 1)Reactのコンポーネント化と仮想DOMは、Netflixアプリケーションのパフォーマンスと開発効率を向上させます。 2)VueはNetflixの内部ツールと小規模プロジェクトで使用されており、その柔軟性と使いやすさが重要です。

Vue.jsは、複雑なユーザーインターフェイスを構築するのに適した進歩的なJavaScriptフレームワークです。 1)そのコア概念には、レスポンシブデータ、コンポーネント、仮想DOMが含まれます。 2)実際のアプリケーションでは、TODOアプリケーションを構築し、Vuerouterを統合することで実証できます。 3)デバッグするときは、vuedevtools and Console.logを使用することをお勧めします。 4)パフォーマンスの最適化は、V-IF/V-Show、リストレンダリング最適化、コンポーネントの非同期負荷などを通じて達成できます。

Vue.JSは中小企業から中規模のプロジェクトに適していますが、Reactは大規模で複雑なアプリケーションにより適しています。 1。VUE.JSのレスポンシブシステムは、依存関係追跡を介してDOMを自動的に更新し、データの変更を簡単に管理できるようにします。 2.反応は一方向のデータフローを採用し、データは親コンポーネントから子コンポーネントに流れ、明確なデータフローと簡単な抽出構造を提供します。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

WebStorm Mac版
便利なJavaScript開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)
