我最近開始建立與vuejs的應用程序,並有一個小問題,我無法迴避:緩存視圖
我使用VUE路由器頁面之間跳轉,並可以說我有一個巨大的列表,其中額外的項目可能會注入Ajax,用戶必須滾動,他點擊項目,查看詳細信息(在新路線),當回到列表被重新初始化,並且必須再次滾動以在他是先前。在使用vue-router時,我是否有可能保持給定組件的狀態(和查看像滾動位置一樣),還是必須在主應用程序組件中保留一些緩存實例,然後將其映射到init?
謝謝。
我最近開始建立與vuejs的應用程序,並有一個小問題,我無法迴避:緩存視圖
我使用VUE路由器頁面之間跳轉,並可以說我有一個巨大的列表,其中額外的項目可能會注入Ajax,用戶必須滾動,他點擊項目,查看詳細信息(在新路線),當回到列表被重新初始化,並且必須再次滾動以在他是先前。在使用vue-router時,我是否有可能保持給定組件的狀態(和查看像滾動位置一樣),還是必須在主應用程序組件中保留一些緩存實例,然後將其映射到init?
謝謝。
本質上,問題在於您的組件在內部存儲狀態。瀏覽清除狀態。有兩種方法可以處理。
1)(quickfix)而不是重定向使用另一種顯示項目細節的方式(模態,或展開想到)。這種方式組件的狀態不會丟失
2)(「正確的方式」)存儲狀態。不可避免的是,遲早你會遇到這種情況,處理存儲狀態的最好方法就是vuex。 https://vuex.vuejs.org/en/intro.html最初,這將需要一些學習,並添加一些複雜性,但它是一個值得投資
所以我跑了第一個選項,它似乎工作,但是非常混亂,我附加了簡單的消息總線實現,但無論如何最終存儲在應用程序的任何地方的數據,並不得不實施人工反應。現在我是在vuex文檔之後,它似乎解決了我所有的問題(除了滾動位置,但我已經用其他方式解決了這個問題),正是我所需要的,而且根本不是那麼可怕:)謝謝 –
很難說什麼工作,因爲你不同意你的代碼,但我想看看[保活](https://vuejs.org/v2/api/#keep-alive)組件和vue-router的[Scroll Behavior](https://router.vuejs.org/en/advanced/scroll-behavior.html)選項 – thanksd