vuejs計算屬性、Methods及Watched屬性


一、計算屬性(computed)
Vue.js 的內聯表達式非常方便,但如果涉及到比較復雜的場景,我們應該使用計算屬性。
計算屬性是用來聲明式的描述一個值依賴了其它的值,當依賴的值發生改變時,其值才會相應的發生更改並更新相關的DOM。


其結果如下圖,當文本框中值發生更改時,計算屬性的值也發生相應的更改並觸發DOM更新。

 

 值得注意的是計算屬性默認只有 getter ,不過自已可以根據需要提供一個setter。

此時我們可以點擊頁面button元素執行reversedMessage的set方法

文本框中輸入message,點擊set后得到的結果如下:

 

二、Methods && Methods vs computed
其實除了使用計算屬性外,我們利用methods同樣可以達到相同的效果。

此時得到的結果和使用計算屬性得到的結果是一樣的

  其實在這個簡單的例子中,使用計算屬性與methods是區別並不明顯,但在一些比較復雜或是數據量比較大的,並存在一些依賴關系的時候,計算屬性的優勢就會突顯出來,此時使用計算屬性會大大提高我們的性能。

計算屬性:只要依賴的數據沒發生改變,我們就可以直接返回緩存里的數據,而不需要每次都重復執行數據操作。

Methods: 只要發生重新渲染,method 調用總會執行該函數。

鑒於兩者的區別,我們可以根據其需求和場景進行合理的選擇。

 

三、watch && Watched屬性 vs computed

watch用於觀察和響應Vue實例上的數據變動,與計算屬性相比,大部份情況下使用計算屬性可能會更好一些,但當你想要在數據變化響應時,執行異步操作或開銷較大的操作,這時使用watch將是更好的選擇。

此時如果textValue的值發生改變時,就會執行watch操作,如果我們需要對數據進行深度觀察時,可以使用deep屬性。

使用watch時代碼很容易理解,它指定監測的值是誰,然后相應的改變其他的值。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM