亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Vue.js教程之計算屬性

 更新時間:2016年11月11日 09:12:57   作者:hutou  
Vue.js 的內聯(lián)表達式非常方便,但它最合適的使用場景是簡單的布爾操作或字符串拼接。這篇文章給大家介紹了Vue.js教程之計算屬性,非常不錯,感興趣的的朋友一起看看吧

Vue.js 的內聯(lián)表達式非常方便,但它最合適的使用場景是簡單的布爾操作或字符串拼接。如果涉及更復雜的邏輯,你應該使用計算屬性。

計算屬性是用來聲明式的描述一個值依賴了其它的值。當你在模板里把數(shù)據(jù)綁定到一個計算屬性上時,Vue 會在其依賴的任何值導致該計算屬性改變時更新 DOM。這個功能非常強大,它可以讓你的代碼更加聲明式、數(shù)據(jù)驅動并且易于維護。

通常情況下,使用計算屬性會比使用過程式的$watch回調更合適。比如下面的例子:

<div id="demo">{{fullName}}</div>
var vm = new Vue({
data: {
firstName: 'Foo',
lastName: 'Bar',
fullName: 'Foo Bar'
}
})
vm.$watch('firstName', function (val) {
this.fullName = val + ' ' + this.lastName
})
vm.$watch('lastName', function (val) {
this.fullName = this.firstName + ' ' + val
})

上面的代碼是過程式的,并且比較笨重。對比一下計算屬性的版本:

var vm = new Vue({
el:'#demo',
data: {
firstName: 'Foo',
lastName: 'Bar'
},
computed: {
fullName: function () {
return this.firstName + ' ' + this.lastName
}
}
})

是不是感覺好多了?另外,你還可以為計算屬性提供一個 setter:

computed: {
fullName: {
// getter
get: function () {
return this.firstName + ' ' + this.lastName
},
// setter
set: function (newValue) {
var names = newValue.split(' ')
this.firstName = names[0]
this.lastName = names[names.length - 1]
}
}
}

計算屬性緩存

在 0.12.8 之前,計算屬性僅僅體現(xiàn)為一個取值的行為 —— 每次你訪問它的時候,getter 都會重新求值。在 0.12.8 中對此做了改進 —— 計算屬性的值會被緩存,只有在其某個反應依賴改變才會重新計算。

設想我們有一個開銷很大的計算屬性 A,它需要循環(huán)一個大數(shù)組并且完成很多運算。并且我們還有一個依賴 A 的計算屬性。如果沒有緩存,我們對 A 的 getter 不必要的過度調用就會導致潛在的性能問題。而有了緩存,A 的值會被緩存起來,除非其依賴發(fā)生了變化,這樣訪問它再多次也不會導致大量的不必要運算了。

然而,我們還是應該理解什么會被視為“反應式依賴”:

var vm = new Vue({
data: {
msg: 'hi'
},
computed: {
example: {
return Date.now() + this.msg
}
}
})

在上面的例子中,計算屬性依賴 vm.msg。因為這是一個在 Vue 實例中被觀察的數(shù)據(jù)屬性,那么它就被視為了一個反應式依賴。無論何時 vm.msg 改變,vm.example 的值都會被重新計算。
然而,Date.now()并不是反應式依賴,因為它沒有和 Vue 的數(shù)據(jù)觀察系統(tǒng)發(fā)生任何關系。因此,當你在程序中訪問vm.example時,你會發(fā)現(xiàn)除非vm.msg觸發(fā)了一次重新計算,否則時間戳始終是相同的值。

有的時候你需要保留簡單獲取數(shù)據(jù)的模式,每次你訪問 vm.example 的時候都希望觸發(fā)重新計算。從 0.12.11 開始,你可以為一個特殊的計算屬性開關緩存支持:

computed: {
example: {
cache: false,
get: function () {
return Date.now() + this.msg
}
}
}

現(xiàn)在,每次你訪問 vm.example 的時候,時間戳都會及時更新。然而,要注意這只發(fā)生在 JavaScript 程序內部訪問的時候,數(shù)據(jù)綁定還是依賴驅動的。當你在模板中綁定一個 {{example}} 的計算屬性時,DOM 只會在反應式依賴改變時才會更新。

以上所述是小編給大家介紹的Vue.js教程之計算屬性,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!

相關文章

  • 在項目中封裝axios的實戰(zhàn)過程

    在項目中封裝axios的實戰(zhàn)過程

    這篇文章主要給大家介紹了關于如何在項目中封裝axios的相關資料,axios 請求的封裝,無非是為了方便代碼管理,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2021-09-09
  • 將Vue組件庫更換為按需加載的方法步驟

    將Vue組件庫更換為按需加載的方法步驟

    這篇文章主要介紹了將Vue組件庫更換為按需加載的方法步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-05-05
  • Vue實現(xiàn)導航欄的顯示開關控制

    Vue實現(xiàn)導航欄的顯示開關控制

    今天小編就為大家分享一篇Vue實現(xiàn)導航欄的顯示開關控制,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • vue項目兼容IE瀏覽器的教程步驟

    vue項目兼容IE瀏覽器的教程步驟

    Vue的小伙伴們,困擾大家的IE瀏覽器支持Vue的問題,目前已經找到了一個比較好的解決方案,下面這篇文章主要給大家介紹了關于vue項目兼容IE瀏覽器的教程步驟,需要的朋友可以參考下
    2023-03-03
  • Vue中watch與watchEffect的區(qū)別詳細解讀

    Vue中watch與watchEffect的區(qū)別詳細解讀

    這篇文章主要介紹了Vue中watch與watchEffect的區(qū)別詳細解讀,watch函數(shù)與watchEffect函數(shù)都是監(jiān)聽器,在寫法和用法上有一定區(qū)別,是同一功能的兩種不同形態(tài),底層都是一樣的,需要的朋友可以參考下
    2023-11-11
  • element Dropdown組件意想不到的坑

    element Dropdown組件意想不到的坑

    本文主要介紹了element Dropdown組件意想不到的坑,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • element上傳組件循環(huán)引用及簡單時間倒計時的實現(xiàn)

    element上傳組件循環(huán)引用及簡單時間倒計時的實現(xiàn)

    這篇文章主要介紹了element上傳組件循環(huán)引用及簡單時間倒計時的實現(xiàn),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-10-10
  • unplugin-svg-component優(yōu)雅使用svg圖標指南

    unplugin-svg-component優(yōu)雅使用svg圖標指南

    這篇文章主要為大家介紹了unplugin-svg-component優(yōu)雅使用svg圖標指南,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-03-03
  • JavaScript之實現(xiàn)一個簡單的Vue示例

    JavaScript之實現(xiàn)一個簡單的Vue示例

    這篇文章主要介紹了JavaScript之實現(xiàn)一個簡單的Vue示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-01-01
  • Vue項目中使用better-scroll實現(xiàn)一個輪播圖自動播放功能

    Vue項目中使用better-scroll實現(xiàn)一個輪播圖自動播放功能

    better-scroll是一個非常非常強大的第三方庫 在移動端利用這個庫 不僅可以實現(xiàn)一個非常類似原生ScrollView的效果 也可以實現(xiàn)一個輪播圖的效果。這篇文章主要介紹了Vue項目中使用better-scroll實現(xiàn)一個輪播圖,需要的朋友可以參考下
    2018-12-12

最新評論