vue中有一種數據監聽工具叫做watch,它可以用來監聽數據的變化,并做出相應的操作。下面我們來學習一下watch的相關用法。
首先,我們需要在vue的實例中添加一個watch屬性,接著在里面添加需要監聽的數據和相應的回調函數。如下所示:
watch: { 'dataName': function(newValue, oldValue) { // 在這里執行相應的操作 } }
在上面的代碼中,dataName就是需要進行監聽的數據,newValue表示新值,oldValue表示舊值。當監聽到數據改變時,會執行回調函數并傳入這兩個參數。
除了可以監聽單個數據,watch還支持監聽一個對象中多個屬性的變化。如下所示:
watch: { 'objName.propName1': function(newValue, oldValue) { // 在這里執行相應的操作 }, 'objName.propName2': function(newValue, oldValue) { // 在這里執行相應的操作 } }
在上面的代碼中,objName是需要監聽的對象,propName1和propName2是需要監聽的屬性。如果這兩個屬性的值有任何一項改變,對應的回調函數就會被執行。
除了在vue實例中直接添加watch屬性進行監聽,還可以在組件中添加watch,這樣就可以對組件內部的數據進行監聽了。
export default { data() { return { dataName: '' } }, watch: { 'dataName': function(newValue, oldValue) { // 在這里執行相應的操作 } } }
最后需要注意的是,watch雖然可以用來監聽數據的變化,但是使用不當也會造成性能問題。因此,在使用watch時需要盡量避免在回調函數中進行耗時操作。