淺析Vue中method與computed的區(qū)別
在new Vue的配置參數(shù)中的computed和methods都可以處理大量的邏輯代碼,但是什么時候用哪個屬性,要好好區(qū)分一下才能做到正確的運用vue。
computed稱為計算屬性,顧名思義,計算就要返回一個計算的結(jié)果,所以,當我們要處理大量的邏輯,但是最后要取得最后的結(jié)果的時候可以用computed;
為了說明method與computed的區(qū)別,在此我想先來看看computed屬性在vue官網(wǎng)中的說法:模板內(nèi)的表達式是非常便利的,但是它們實際上只用于簡單的運算。在模板中放入太多的邏輯會讓模板過重且難以維護。
我們來看一個例子:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <script src="javascript/vue.min.js"></script> </head> <body> <div id="app"> //直接在模板中綁定表達式 <p>{{message.split('').reverse().join('')}}</p> //運用計算屬性 <p>message反轉(zhuǎn)之后的結(jié)果:{{reverseMessage}}</p> </div> <script> var vm=new Vue({ el:"#app", data:{ message:"hello" }, computed:{ reverseMessage:function(){ return this.message.split('').reverse().join(''); } } }) </script> </body> </html>
在上面這種情況下,模板不再簡單和清晰。在意識到這是反向顯示 message 之前,你不得不再次確認第二遍。當你想要在模板中多次反向顯示 message 的時候,問題會變得更糟糕。這就是對于任何復雜邏輯,你都應當使用計算屬性的原因。下面我將運用method與computed進行比較:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <script src="javascript/vue.min.js"></script> </head> <body> <div id="app"> <p>{{message}}</p> //直接在模板中綁定表達式 <p>{{message.split('').reverse().join('')}}</p> //運用計算屬性 <p>{{reverseMessage}}</p> //運用methods方式 <p>{{methodMessage()}}</p> </div> <script> var vm=new Vue({ el:"#app", data:{ message:"hello" }, computed:{ reverseMessage:function(){ return this.message.split('').reverse().join(''); } }, methods:{ methodMessage:function () { return this.message.split('').reverse().join(''); } } }) </script> </body> </html>
我在將這二種方式進行了比較。返回的結(jié)果是一樣的,寫但在法上computed計算屬性的方式在用屬性時不用加(),而methods方式在使用時要像方法一樣去用,必須加().
兩種方式在緩存上也大有不同,利用computed計算屬性是將 reverseMessage與message綁定,只有當message發(fā)生變化時才會觸發(fā)reverseMessage,而methods方式是每次進入頁面都要執(zhí)行該方法,但是在利用實時信息時,比如顯示當前進入頁面的時間,必須用methods方式。
總結(jié)
以上所述是小編給大家介紹的Vue中method與computed的區(qū)別,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
- Vue中的methods、computed計算屬性和watch監(jiān)聽屬性的使用和區(qū)別解析
- vue中的data,computed,methods,created,mounted用法及說明
- Vue中computed屬性和watch,methods的區(qū)別
- 關(guān)于Vue的 watch、computed和methods的區(qū)別匯總
- vue.js中methods watch和computed的區(qū)別示例詳解
- Vue.js計算機屬性computed和methods方法詳解
- Vue中computed、methods與watch的區(qū)別總結(jié)
- Vue中的methods、watch、computed的區(qū)別
- Vue中computed與methods的區(qū)別詳解
- 深入淺析Vue.js中 computed和methods不同機制
- vue中計算屬性(computed)、methods和watched之間的區(qū)別
- vue中計算屬性computed和普通屬性method的區(qū)別小結(jié)
相關(guān)文章
ant design vue 清空upload組件圖片緩存的問題
這篇文章主要介紹了ant design vue 清空upload組件圖片緩存的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-10-10vue跳轉(zhuǎn)頁面的幾種常用方法實例總結(jié)
Vue是一種流行的JavaScript框架,用于構(gòu)建用戶界面,在Vue中,頁面跳轉(zhuǎn)通常使用路由(Router)來實現(xiàn),除此之外還有很多方法,這篇文章主要給大家介紹了關(guān)于vue跳轉(zhuǎn)頁面的幾種常用方法,需要的朋友可以參考下2024-05-05解決vue里a標簽值解析變量,跳轉(zhuǎn)頁面,前面加默認域名端口的問題
這篇文章主要介紹了解決vue里a標簽值解析變量,跳轉(zhuǎn)頁面,前面加默認域名端口的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-07-07vue-cli3使用 DllPlugin 實現(xiàn)預編譯提升構(gòu)建速度
這篇文章主要介紹了vue-cli3使用 DllPlugin 實現(xiàn)預編譯提升構(gòu)建速度 ,需要的朋友可以參考下2019-04-04vue3.0+vue-router+element-plus初實踐
這篇文章主要介紹了vue3.0+vue-router+element-plus初實踐,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-12-12vue 實現(xiàn)tab切換保持數(shù)據(jù)狀態(tài)
這篇文章主要介紹了vue 實現(xiàn)tab切換保持數(shù)據(jù)狀態(tài),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-07-07