Skip to content

简介

提示
目前仅支持Vue3版本

用于保持项目运行时的数据,可在任何时候主动恢复数据。

Why

有时为了更好的用户体验,我们会记录用户在操作时填写的一些数据。

场景一:当用户在form表单输入内容后,因为一些原因离开了页面或者刷新了页面,此时已填写的数据会被记录下来,当用户再次进入该页面时提示是否自动恢复已填写内容,这是一个很棒的加分体验,省去了用户的许多重复工作。

演示

场景二:树形结构数据,自动记录用户的展开项。

演示

查看在线项目案例


还有许多的场景可以应用,特别是在进行跨端开发的时候,我在开发某个Electron项目时,就有这样的需求,很多组件/页面需要记录数据优化用户体验,使用Pinia当然可轻松解决这样的需求

演示

但是正如Pinia文档描述,Pinia的目的是为了跨组件/页面共享状态,而我们的需求是为了记录组件的状态(vue-save-status当然也提供了可以获取其他组件记录数据的API,但如果仅仅是为了实现共享数据,更推荐使用Pinia)。如果使用Pinia完成我们这个需求,需要给每个组件创建一个store去维护所要记录的数据,十分雍肿,也脱离了Pinia的实际用法。

使用vue-save-status只需要在目标组件使用如下代码:

javascript
$useSaveStatus('test-save', var1,var2...)

此外,vue-save-status还可以轻松实现持久化数据,这是keep-alive / Pinia 做不到的。

javascript
import { $lastingDataOpen } from 'vue-save-status'

$lastingDataOpen("local")

查看$lastingDataOpen具体用法

如果你有类似这方面的场景,相信我,你会觉得它好用的。

Thank You !

这些树形结构在运行期间需要保持他们的展开项,如果使用keep-alive需要缓存非常非常多的组件,

很多人喜欢用keep-alive,不得不说keep-alive在一些场景下特别有用,比如列表页面缓存。但是,许多场景往往只是需要缓存数据,而不是缓存整个页面,在项目里使用过多keep-alive也会发现页面明显卡顿。

特别是在进行跨端开发的时候,keep-alive的性能瓶颈表现更明显。我在开发某个Electron项目时,有许多的树形结构,这些树形结构在运行期间需要保持他们的展开项,如果使用keep-alive需要缓存非常非常多的组件,很卡顿;所以这种场景最好的解决方案就是记录数据,这也是促使开发了这个库的原因之一。

如果你有类似这方面的场景,相信我,你会觉得它好用的。

Thank You !