vue,列表页跳转到详情页,返回的时候保持默认的滚动位置的同时(缓存),如何状态发生改变?

比如有一个类似朋友圈的列表页,点击进入详情

然后从详情返回列表页的时候,依旧保持原本的滚动位置

👆的效果利用keep-alive缓存和路由方法存储滚动位置可以做到

image
如图,就是目前已实现的效果

目前的问题是:我在详情页点了赞,是希望返回列表页的时候,这个赞也是能及时更新的

但是缓存的页面要如何更新这个状态呢?

如果在activated()方法里请求数据,会导致页面数据的重新渲染。那么返回页面的时候,会触发滚动到之前的位置,这个效果不大好

如下图

image

如何能在更新状态的同时,又能在返回的时候,就在刚刚的位置?不用触发滚动?

阅读 3k
2 个回答

因为 keep-alive 缓存,可以通过 eventBus 进行事件通知,列表页里监听修改相应列表项的数据。
列表页 eventBus.$on,详情页点赞后 eventBus.$emit

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题