1.把一個組件重置到初始狀態是一個常見的需求,推薦的作法有兩種,一種是父組件重置子組件的 prop,另外一種是子組件暴露一個重置的方法供父組件調用。但有些時候,子組件既沒有提供重置的方法,也沒提供 prop 來重置本身的狀態。更重要的是,這個子組件咱們還動不了。因而咱們就須要一種 hack 的方式來強制子組件重置到初始狀態。方法以下vue
// 原理就是:採用v-if會銷燬組件而且重繪,這樣就會重載組件 // 子組件:本身封裝的組件 <IncomeStatistics v-if="hackReset == true"></IncomeStatistics> // 而後再父組件內的增刪改查方法中操做,就行了 this.hackReset = false; // 而後你的方法成功後 // Vue 實現響應式並非數據發生變化以後 DOM 當即變化,而是按必定的策略進行 DOM 的更新。 // 在vue的深刻響應式原理中有解釋: // $nextTick 是在下次 DOM 更新循環結束以後執行延遲迴調,在修改數據以後使用 $nextTick,則能夠在回調中獲取更新後的 DOM this.$nextTick(() => { this.hackReset = true; }); //這樣的話就會完成強制刷新
v-if 在切換時,元素及它的綁定數據和組件都會被銷燬並重建