在 vue-cnode 升级 vue2 的时候,在公司内部已经有两个正式项目使用 vue2, 遇到的一个最难的问题,就是如何能在页面后退时还原数据和滚动条位置, 虽然 vue2 内置了 keep-alive 组件,vue-router 也提供了 scrollBehavior 方法进行设置, 但是仍然无法满足需求,后来阅读 vue-router 的源码发现, 每个页面都会自动在 history.state 对象中存储一个对应的 key 值, 便利用这个特性实现了页面后退时,数据和滚动条还原, 不过目前只是实现了页面的顶级组件还原, 如果需要对顶级组件下的子组件实现数据还原, 可以利用 $options._scopeId 来实现。 哈哈,具体如何实现就要靠大家自己发挥想象力了