We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
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
如果我们按照 A 类型进行搜索,查出来100条数据(默认20条/页),我们翻阅到第 3 页,找到 B 数据,我们对 B 进行编辑,编辑过后回到列表页面,按照用户体验我们还是想回到按 A 搜索的第 3 页的。
但是有个问题,因为编辑页、注册页等是通过路由跳转,当我们编辑了某条数据,返回列表页时,因为被缓存列表页展示的数据并没有被更新过来,只有刷新下才能更新过来。
// 列表页面 activated() { this.search() }
用到的是keepAlive的生命周期中的activated方法,该方法在keepAlive激活时调用。所以你页面中需要的刷新都写在这里面就完成了。
keepAlive
activated
但是新的问题又出现了
A页面缓存了,push进入B页面。首次进入B页面数据正常,url也正常。回退到A页面,A页面确实缓存了。再从列表中选择进入B页面。此时B页面的数据是缓存的,但是url是正常的!!!
处理方案一: 在B页面也加,进行处理
B
// 详情页面 activated() { 需要刷新的数据 }
处理方案二: router中添加exclude="Detail",你不想被缓存的页面的name都写成Detail
router
exclude="Detail"
name
Detail
<keep-alive v-if="keepAlive" exclude="Detail"> <router-view :key="key"></router-view> </keep-alive> <keep-alive v-else exclude="Detail"> <router-view :key="key"></router-view> </keep-alive>
include和exclude都是针对组建名称,非路由!!
include
exclude
The text was updated successfully, but these errors were encountered:
No branches or pull requests
前言
问题
KeepAlive :Vue的内置组件,能在组件切换过程中将状态保留在内存中,防止重复渲染 DOM。
解决办法
用到的是
keepAlive
的生命周期中的activated
方法,该方法在keepAlive
激活时调用。所以你页面中需要的刷新都写在这里面就完成了。但是新的问题又出现了
处理方案一:
在
B
页面也加,进行处理处理方案二:
router
中添加exclude="Detail"
,你不想被缓存的页面的name
都写成Detail
include
和exclude
都是针对组建名称,非路由!!include
- 字符串或正则表达式。只有匹配的组件会被缓存。exclude
- 字符串或正则表达式。任何匹配的组件都不会被缓存。参考文献
The text was updated successfully, but these errors were encountered: