-
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>
這樣每次關閉彈框都會把內容直接移除了,現在終於不會緩存了