vue 強制刷新子組件

寫在前面


把一個組件重置到初始狀態是一個常見的需求,推薦的做法有兩種,一種是父組件重置子組件的 prop,另一種是子組件暴露一個重置的方法供父組件調用。但有些時候,子組件既沒有提供重置的方法,也沒提供 prop 來重置自己的狀態。更重要的是,這個子組件我們還動不了。于是我們就需要一種 hack 的方式來強制子組件重置到初始狀態。方法如下:

//     原理就是:采用v-if會銷毀組件并且重繪,這樣就會重載組件
// 子組件:自己封裝的組件
   <IncomeStatistics v-if="DestroyIncomeStatistics == true"
                            ref="IncomeStatisticsChild"></IncomeStatistics>
// 然后再父組件內的增刪改查方法中操作,就好了
this.DestroyIncomeStatistics = false;
// 然后你的方法成功后
// Vue 實現響應式并不是數據發生變化之后 DOM 立即變化,而是按一定的策略進行 DOM 的更新。
// 在vue的深入響應式原理中有解釋:
// $nextTick 是在下次 DOM 更新循環結束之后執行延遲回調,在修改數據之后使用 $nextTick,則可以在回調中獲取更新后的 DOM
   this.$nextTick(() => {
          this.DestroyIncomeStatistics = true;
        });
//這樣的話就會完成強制刷新

總結一下:還是要不斷學習,才會有進步,思維很重要。

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 作為一個合格的開發者,不要只滿足于編寫了可以運行的代碼。而要了解代碼背后的工作原理;不要只滿足于自己的程序...
    六個周閱讀 8,507評論 1 33
  • 什么是組件? 組件 (Component) 是 Vue.js 最強大的功能之一。組件可以擴展 HTML 元素,封裝...
    youins閱讀 9,525評論 0 13
  • 此文基于官方文檔,里面部分例子有改動,加上了一些自己的理解 什么是組件? 組件(Component)是 Vue.j...
    陸志均閱讀 3,846評論 5 14
  • 前言 開發一個React應用,更多的是在編寫組件,而React組件最小的單位就是React元素,編寫組件的最大的好...
    itclanCoder閱讀 1,164評論 0 1
  • 主要還是自己看的,所有內容來自官方文檔。 介紹 Vue.js 是什么 Vue (讀音 /vju?/,類似于 vie...
    Leonzai閱讀 3,375評論 0 25