A->B->C 三个页面,怎么做到A再次进入B的时候,是重新渲染的,而C到B是从缓存中读取B的,
我的现在的思路:
<keep-alive include="currentView">
<router-view></router-view>
</keep-alive>
在beforeRouteLeave
的时候加了判断,如果是返回到A的话,执行this.$destroy();
销毁当前组件,其他的时候不销毁这个组件,让其缓存在内存中。可是这样会问题:只要我返回了一次A页面,执行了this.$destroy();
无论从哪个页面进入B,B都是重新渲染,而不是从内存中读取,也就是说,只要执行了一次this.$destroy();
,该组件就不会被缓存。B组件里面有子组件,根据条件有不同的数据源,所以从A到B必须是重新渲染的,有什么好的办法解决这个问题吗?看了尤大大在github评论,说最好别手动调用this.$destroy();
。是从后端读取的数据,是webapp分页读取数据,我想B到C保留原来已经读取的数据,和一些之前的过滤数据。最好也保留滚动条的状态,我用的是vue-router
的hash
模式
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…