首先解釋一下什么是表單內(nèi)容監(jiān)聽,我這里是將表單數(shù)據(jù)全部儲存到list變量中,當用戶填寫了內(nèi)容之后,將用戶填寫的內(nèi)容更新到list變量中,說是監(jiān)聽表單內(nèi)容實際上是監(jiān)聽變量中的數(shù)據(jù)內(nèi)容。監(jiān)聽數(shù)據(jù)變化可以用watch方法,它是Vue組件中的一個功能,可以監(jiān)聽數(shù)據(jù)變化,并在數(shù)據(jù)變化時執(zhí)行一些操作。
watch方法使用起來比較簡單,只需要傳兩個參數(shù)就可以,第一個參數(shù)是需要監(jiān)聽的變量數(shù)據(jù),第二個參數(shù)則是當監(jiān)聽的數(shù)據(jù)發(fā)生變化時候執(zhí)行的回調(diào)函數(shù),在回調(diào)函數(shù)中可以執(zhí)行各種方法,下面就是調(diào)用的例子;
在說一說為什么會介紹這個方法,也算是避坑吧,最近開發(fā)更新手術(shù)護理系統(tǒng)app的時候,其中有一個表單頁面需要增加新的功能,在選擇時間之后自動獲取用戶之后需要填寫的數(shù)據(jù)并更新到表單上,本身功能并不難,事件跟方法很快就 加上了,而且后臺的內(nèi)容自動填充的接口也開發(fā)完畢,但是在實際測試當中,選擇時間之后,觸發(fā)了內(nèi)容自動填充的事件,但是數(shù)據(jù)卻是怎么都寫不到數(shù)據(jù)庫當中,很是奇怪,第一反應(yīng)是后臺接口的問題,或者是數(shù)據(jù)庫有問題,很奇怪流程,觸發(fā)節(jié)點,提交請求都沒有問題,就是寫入不進數(shù)據(jù)庫中。
最后找到原因就是表單內(nèi)容設(shè)置了內(nèi)容監(jiān)聽事件,在自動填充之后,由于頁面存儲的數(shù)據(jù)沒有更新,而監(jiān)聽事件又設(shè)置了內(nèi)容發(fā)生改變自動提交數(shù)據(jù)內(nèi)容,直接把剛寫入的內(nèi)容覆蓋成空所以導致了這個烏龍事件,如果大家以后也遇到類似情況可以從頁面里面找一找是不是設(shè)置了數(shù)據(jù)監(jiān)聽。