使用Dialog彈窗時,在打開或者關閉的時候需要對數據進行初始化,在初始過程中,一旦出現遺漏就有可能導致bug。
就好像下面這種方式,不但代碼冗餘,且不易維護,一旦新增字段又需要一個個修改。
如何結局這個問題呢?可以考慮使用v-if對Dialog組件進行銷燬和創建,這樣每次都會自動初始化組件內的數據。個人覺得損失一些性能提高開發速度和代碼可維護性,是可以接受的。
比如組件AddFinancialProduct是個利用dialog構建的彈窗組件,在父組件中通過修改visible的值,進行組件的創建和銷燬:
<AddFinancialProduct @save='searchList' ref='addFinancialProduct' :isWritable="getFundFinancialProductStatus" v-if="visible"></AddFinancialProduct>