Vue.js 計算屬性
為什麼需要計算屬性?
模板內的表示式應當只作簡單的運算,防止模板過重且難以維護。
所以,例如:
<div id="example">
{{ message.split('').reverse().join('') }}
</div>
這類邏輯,需要多次確認,導致模板不再簡單和清晰。
什麼是計算屬性?
<div id="example">
<p>Original message: "{{ message }}"</p>
<p>Computed reversed message: "{{ reversedMessage }}"</p>
</div>
var vm = new Vue({
el: '#example',
data: {
message: 'Hello'
},
computed: {
// a computed getter
reversedMessage: function () {
// `this` points to the vm instance
return this.message.split('').reverse().join('')
}
}
})
在computede中宣告瞭reversedMessage,即宣告瞭一個計算屬性reversedMessage。
我們提供的函式將用作屬性vm.reversedMessage的getter。
vm.reversedMessage的值始終取決於vm.message的值。
vm.message發生改變時,所有依賴於vm.reversedMessage的繫結也會更新。
計算屬性vs Methods
通過呼叫表示式中的method可以達到同樣的效果:
<p>Reversed message:"{{reversedMessage()}}"</p>
// in component
methods: {
reversedMessage: function () {
return this.message.split('').reverse().join('')
}
}
不同的是計算屬性是基於它們的依賴進行快取的。計算屬性只有在它的相關依賴發生改變時才會重新求值。這就意味著只要message沒有發生改變,多次訪問reversedMessage計算屬性時,會立即返回之前的計算結果,不必再次執行函式。
相比而言,只要發生重新渲染,method呼叫總會執行該函式。
計算屬性使用場合:不是直接使用瀏覽器重新整理頁面,改變資料、DOM操作等引起頁面重新渲染時,計算屬性會直接使用快取,不會重新執行函式。適合計算量很大且改變頻率低的屬性。適用於對多資料變動進行監聽,維護一個狀態。
相關文章
- vue.js計算屬性(computed)Vue.js
- vue.js計算屬性(getter | setter)Vue.js
- vue.js計算屬性用法(computed)Vue.js
- Vue.js入門學習 -- 計算屬性Computed( 十一)Vue.js
- 計算屬性
- [Vue.js進階]從原始碼角度剖析計算屬性的原理Vue.js原始碼
- Vue的計算屬性Vue
- Vue 計算屬性與方法Vue
- Vue(5)計算屬性computedVue
- 【Vue.js 牛刀小試】05:第五章 - 計算屬性與監聽器Vue.js
- 【Vue.js 牛刀小試】05:第五章 – 計算屬性與監聽器Vue.js
- vue.js計算屬性用法(computed)技巧,依賴其他vue例項的資料Vue.js
- Vue.js設計與實現學習總結(第四章6)計算屬性Vue.js
- vue計算屬性和vue實力的屬性和方法Vue
- Vue 框架-04-計算屬性Vue框架
- Vue — 計算屬性(computed)詳解Vue
- vue3計算屬性的可寫屬性 set 與 getVue
- Vue計算屬性和偵聽器Vue
- 【Openxml】顏色變化屬性計算XML
- Vue筆記三——計算屬性(computed)Vue筆記
- 3. Vue語法--計算屬性Vue
- [譯] 監測與除錯 Vue.js 的響應式系統:計算屬性樹(Computed Tree)除錯Vue.js
- vue.js基礎02--計算屬性(computed、watch、&watch)、過濾器、自定義元件(component、components)Vue.js過濾器元件
- vue 基礎入門筆記 19:計算屬性和偵聽屬性Vue筆記
- Vue中計算屬性和偵聽器Vue
- vue計算屬性詳解——小白速會Vue
- 如何用redux實現computed計算屬性Redux
- Vue之computed(計算屬性)詳解get()、set()Vue
- vue計算屬性 監聽 方法的區別Vue
- Vue3原始碼解析(computed-計算屬性)Vue原始碼
- vue.js常用屬性 es6的常用語法Vue.js
- Vue中的計算屬性和偵聽器比較Vue
- Vue原始碼學習(十七):實現computed計算屬性Vue原始碼
- 【原始碼系列#03】Vue3計算屬性原理(Computed)原始碼Vue
- 【Vue】計算屬性 監聽屬性 元件通訊 動態元件 插槽 vue-cli腳手架Vue元件
- Python - 物件導向程式設計 - 公共屬性、保護屬性、私有屬性Python物件程式設計
- Vue.js 的 computed 屬性和 watch 的區別在哪裡?Vue.js
- Vue中如何使用方法、計算屬性或觀察者Vue
- 前端【VUE】03-vue【computed 計算屬性】【watch 偵聽器】前端Vue