el-dialog 里面的組件不刷新問題


  • el-dialog里面的內容是帶緩存的,也就是說除了第一次打開會初始化,其他次打開都是直接加載緩存的。

  • 我們想每次打開el-dialog都要初始化,比如用戶的權限彈框,每次打開我們都要把用戶擁有的權限選中,類似的操作,如果加載了緩存,這就會導致每個用戶回填的權限都一樣了。

  • 如果我們在每次關閉彈框時把彈框里面的內容刪掉,這樣打開時就會初始化了。

查閱了 Dialog 對話框 相關文檔:

 

文檔中有,我們可以設置為 :destroy-on-close="true" 試一試。

 

 

<el-dialog title="日志查看" :visible.sync="dialogLogsVisible" fullscreen center :destroy-on-close="true" > <sys-business-log-list :record-name="recordName" :record-id="recordId" /> <div slot="footer" class="dialog-footer"> <el-button @click="dialogLogsVisible=false">{{ $t('cancel') }}</el-button> </div> </el-dialog>

 

 

什么鬼,怎么只是加了個屬性 display: none; ,說好的關閉銷毀元素呢。

沒辦法了,不能自動銷毀里面的內容,那我們手動銷毀吧,

直接在內容上加上屬性 v-if="dialogLogsVisible"

 

<el-dialog title="日志查看" :visible.sync="dialogLogsVisible" fullscreen center :destroy-on-close="true" > <sys-business-log-list v-if="dialogLogsVisible" :record-name="recordName" :record-id="recordId" /> <div slot="footer" class="dialog-footer"> <el-button @click="dialogLogsVisible=false">{{ $t('cancel') }}</el-button> </div> </el-dialog>

 

這樣每次關閉彈框都會把內容直接移除了,現在終於不會緩存了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM