Vue computed計算屬性的使用方法
computed
computed:相當于method,返回function內(nèi)return的值賦值在html的DOM上。但是多個{{}}使用了computed,computed內(nèi)的function也只執(zhí)行一次。僅當function內(nèi)涉及到Vue實例綁定的data的值的改變,function才會從新執(zhí)行,并修改DOM上的內(nèi)容。
computed和method的對比
<div id="example"> {{ message.split('').reverse().join('') }} </div>
這個是vue官網(wǎng)一直拿來作為例子的代碼。在{{}}可以很方便的放入單個表達式,但是當一個HTML的DOM里面存在太多的表達式,程序會變得很笨重難于維護。
html
<div id="app9"> 9、method與computed的區(qū)別<br/> fullName<br/> {{fullName}}<br/> fullName2<br/> {{fullName}}<br/> fullNameMethod<br/> {{getFullName()}}<br/> fullNameMethod2<br/> {{getFullName()}}<br/> </div>
js
var app9 = new Vue({ el: '#app9', data: { firstName: 'Foo', lastName: 'Bar' }, methods:{ getFullName:function () { console.log("執(zhí)行了methods") return this.firstName+" " +this.lastName; } }, computed: { fullName: function () { console.log("執(zhí)行了computed") return this.firstName + ' ' + this.lastName } } }) setTimeout('app9.firstName="Foo2"',3000);
控制臺輸出的結(jié)果
執(zhí)行了computed
執(zhí)行了methods
執(zhí)行了methods
執(zhí)行了computed
執(zhí)行了methods
執(zhí)行了methods
由此可見使用computed,function只會執(zhí)行一次。當Vue實例中綁定的data數(shù)據(jù)改變的時候,computed也相對應的只改變一次。
相同點:在以上代碼中,兩個p標簽都會打印出同樣被反轉(zhuǎn)的Hello。
不同點:
使用了methods的:HTML中,每一個調(diào)用了Vue的methods的方法,都需要執(zhí)行一遍reversedMessage()這個方法;
而使用computed計算屬性的,只執(zhí)行一遍將結(jié)果保存在緩存中。
computed和watch的對比
html
<div id="demo">{{ fullName }}</div>
js
var vm = new Vue({ el: '#demo', data: { firstName: 'Foo', lastName: 'Bar', fullName: 'Foo Bar' }, watch: { firstName: function (val) { this.fullName = val + ' ' + this.lastName }, 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 } } })
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
父組件中vuex方法更新state子組件不能及時更新并渲染的完美解決方法
這篇文章主要介紹了父組件中vuex方法更新state子組件不能及時更新并渲染的完美解決方法,需要的朋友可以參考下2018-04-04vue.js watch經(jīng)常失效的場景與解決方案
這篇文章主要給大家介紹了關于vue.js watch經(jīng)常失效的場景與解決方案,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-01-01Vue如何實現(xiàn)利用vuex永久儲存數(shù)據(jù)
這篇文章主要介紹了Vue如何實現(xiàn)利用vuex永久儲存數(shù)據(jù)問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-04-04vue3使用iframe嵌入ureport2設計器,解決預覽時NullPointerException異常問題
這篇文章主要介紹了vue3使用iframe嵌入ureport2設計器,解決預覽時NullPointerException異常問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-10-10部署vue+Springboot前后端分離項目的步驟實現(xiàn)
這篇文章主要介紹了部署vue+Springboot前后端分離項目的步驟實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-05-05Vue3封裝自動滾動列表指令(含網(wǎng)頁縮放滾動問題)
本文主要介紹了Vue3封裝自動滾動列表指令(含網(wǎng)頁縮放滾動問題),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-05-05