在动态组件上使用 keep-alive
当在这些组件之间切换的时候,有时会想保持这些组件的状态,以避免反复重渲染导致的性能问题
<component v-bind:is="currentTabComponent"></component>
如果选择了一篇文章,切换到 Archive 标签,然后再切换回 Posts,是不会继续展示你之前选择的文章的。这是因为你每次切换新标签的时候,Vue 都创建了一个新的 currentTabComponent 实例。
但是在这个案例中,我们更希望那些标签的组件实例能够被在它们第一次被创建的时候缓存下来
。为了解决这个问题,我们可以用一个 元素将其动态组件包裹起来。(缓存一次,不会缓存第二次)
<!-- 失活的组件将会被缓存!-->
<keep-alive>
<component v-bind:is="currentTabComponent"></component>
</keep-alive>