背景在日常业务开发中,遇到了一个问题。从列表页进入子页,再次返回列表页时,用户希望保留之前的搜索信息,比如选择Pagination是第4页或者输入的搜索条件(id)等。列表页->子页子页->列表页(此时保留最后一条信息)思路是利用持久化数据状态来保留之前的记录信息。这是我第一个想到的方法,用vuex,cookie,locaStorage,indexdb,用的什么存储方式,目的只是为了保存我们之前的操作记录,比如我输入的搜索信息,还有的分页信息我点击的列表。流程如下1??首先定义一个配置项,配置项如下:constRouterCached=newMap([['ListName',['OneChildName','TwoChildName']]]);2??在List组件的beforeRouteLeave钩子中缓存数据3??在List组件的beforeRouteEnter钩子中读取缓存数据,并执行恢复操作。这里有一个前提,fromhook必须是RouterCached对应的路由名,即如果不在配置表中,我们就清空缓存,不做任何恢复操作。使用vue中的keep-alive组件引入keep-alive。key-alive添加了几个重要的属性。借助社区中的解决方案,得到以下思路。include属性与router-view配合使用。这里的目的是让缓存视图中的组件保持活动状态。CachedViews是这里组件的名称集合。
