Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

在打开歌单的时候,点击专辑封面看歌词,再点击专辑封面恢复后,歌单页面被重新加载 #72

Open
AmazingRise opened this issue Mar 1, 2020 · 1 comment

Comments

@AmazingRise
Copy link

这个不太好描述。举个例子吧。
一个歌单里面有800首歌,我双击了第450首进行播放。
突然想看看歌词,点一下Playbar上面的coverIcon,看完再点一下coverIcon收起(也就是退出Player.vue的fullscreen)
这个时候歌单的界面会被重载,如果不记得歌词序号的话,还要慢慢往下翻。

  1. 要是能记住歌单页面点开coverIcon之前的滚动位置,并且能在退出fullscreen的时候scrollTo就好了。(我的大致思路是将之前的滚动位置存储到sessionStorage,然后退出fullscreen的时候再读取回来,等dom加载完毕就scrollTo。本来我想提交 PR 的 ,但本人实在太菜,连怎么在electron里面实现onready都不知道2333)
  2. 或者把歌单页面有条件地进行Keep-alive。(这个方案貌似比上一个方案要复杂很多,我看代码中有许多transition。如果改成基于v-if的keep-alive,需要把所有的transition改成transition-group,成本过高)
@rocka
Copy link
Member

rocka commented Mar 2, 2020

我认为这个最好还是能用 keep-alive 来实现,重新加载再 scrollTo 的话还会浪费一次网络请求。

但是当前的页面导航机制有点问题:如果导航栈中积累了多个路由(比如点击推荐歌单 -> 歌手 -> 专辑),这时候点击侧边栏中的导航项目(比如回到个性推荐页面),之前积累的路由不会被清空,而会一直保留在导航栈中。这种情况下,被 keep-alive 的组件可能永远没办法被 activate 了,白白浪费了内存。但如果之按照页面上的“返回”按钮一步步后退的话,就不会有这个问题。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants