vue路由切換,子組件數據不更新&頁面未重新渲染&頁面重複渲染

vue路由切換是頁面渲染問題

問題1分析

雖然頁面不同,但是每個頁面有與其他頁面相同的id,在路由切換時,之前界面的元素會疊加渲染到新頁面上。

解決過程1

修改id,使其都不相同

問題2分析

路由切換,複用的子組件的下拉選項沒有隨之變化。
原因是keep-alive是Vue的內置組件,能在組件切換過程中將狀態保留在內存中,防止重複渲染DOM,寫在mouted鉤子函數中的代碼並沒有被執行。

解決過程2

使用activated鉤子函數(keep-alive組件激活時調用),將跟隨路由變化的部分寫在activated,其他的保留在mounted

在被重複複用的子組件內使用

activated() {
      this.$store.commit('updateClasses', "所有班級")
      this.classs=this.classes
      this.init()
    },
    mounted(){
      this.times()
    },
發佈了71 篇原創文章 · 獲贊 12 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章