vue的keep-alive 是一個抽象組件,它可以緩存動態組件的狀態和避免重新渲染。
使用這個組件可以提升應用的性能,因為它可以避免已經初始化過的組件再次受到重復初始化的影響。如果我們在一個列表中循環地渲染組件,有時每個組件都有共同的狀態,而這些狀態不同于組件自身的狀態,在這個時候使用keep-alive將會極大地節約渲染的時間。
<keep-alive> <component :is="currentTabComponent"></component> </keep-alive>
上面的示例代碼中,我們將currentTabComponent的值綁定到component的:is屬性上。currentTabComponent是一個計算屬性,它的值決定要渲染哪個組件。如果我們在一個嵌套路由中使用這個keep-alive組件,那么vue會自動緩存被訪問過的組件。
為了使緩存的組件能夠接收到路由參數的變化,我們可以給keep-alive組件添加一個key屬性。因為每當key起作用時,已經緩存的組件就會被清空并重新渲染。這樣可以確保緩存的組件獲取到最新的路由參數,而不是舊的緩存內容。
<keep-alive :include="'componentA'" :exclude="'componentB'"> <component :is="currentTabComponent" :key="routeParams"></component> </keep-alive>
上面的示例代碼中,我們給component添加了一個:key屬性,并且我們可以把想要緩存的組件的名稱添加到include數組里面,把不想緩存的組件的名稱添加到exclude數組里面。
上一篇html 向左滾動代碼
下一篇vue to= path