記 · ElemetnUI + Vue v-if 視圖切換踩過的那些坑

使用EleUI 做一個用戶登錄窗口,需要用v-if 動態切換三個表單:手機登錄、賬密登錄和密碼找回。其中需要實現一個重置表單的功能,但其間出了一些小bug。密碼找回表單中有三個表單項,手機登錄和賬密登錄都是兩個表單項,它們都是按照EleUI API 說明設置了prop 來進行對應。但密碼找回的第三個表單項就是無法進行重置,後來實踐得出的結果是:只有初始掛載到DOM 上的表單能夠正常重置,方式動態通過v-if 切換過的表單項,都無法正常進行重置。後來在網上搜尋答案,看到有一個說給表單項綁定一個唯一值key 便可解決。我試了試,哎,還真就可以。有點納悶,之前只知道在用v-for 設置Dom 元素的時候需要用唯一key 值進行綁定,我這v-if 切換的元素不是已經動態的在Dom 上卸載和重新掛載了嗎,為什麼多個el-form-item 之間還是會造成影響呢?我想了想,這多半是跟Vue 渲染Dom 時的操作有關,苦於能力有限,之前v-for 綁定key 值的理論也不是吃得很透,現在暫時知曉這麼個方法,有機會再深入研究吧!