keepAlive组件中的instance在打包后添加__v_cache=内部cache map,或者管理内部cache map方法
What problem does this feature solve?
在实现管理系统或者通常会有缓存组件内容时候,可用使用vue-router,keepAlive组件非常好的解决。
但在管理缓存内容时候,keepAlive只提供了max cache count和include, exclude(component name)功能。
在多个链接对应一个组件,如: /xx/edit, /xx/create, /xx/edit?a=1时候,对应内部组件都只有唯一文件name,这时候使用include,exclude就不能区别管理缓存内容,所以需要手动管理cache。
在开发环境中已有instance.__v_cache, 但是编译后,instance上无__v_cache。
源码KeepAlive.ts中,有判断过滤掉了。
if (DEV || FEATURE_PROD_DEVTOOLS) { ;(instance as any).__v_cache = cache }
十分希望去掉过滤,在prod环境中添加支持,感谢阅读。
What does the proposed API look like?
keepAlive component, instance.__v_cache or instance.{delete(key){}, refresh(key){}}
#5105 #4339 When the data is huge, it does really necessary, there are two linked PR. 当数据量巨大的时候,这确实很有必要,已经有两个相关的提交了
#5105 #4339 When the data is huge, it does really necessary, there are two linked PR. 当数据量巨大的时候,这确实很有必要,已经有两个相关的提交了
确实这不是最优雅的解决方案,keepAlive的include如果加上对key支持也可以实现管理,但目前还不知道在哪个版本能上这个功能,解决大家都头痛了很久很久的问题。[笑cry]
Duplicate of https://github.com/vuejs/rfcs/pull/284