页签切换不刷新页面
问题
在使用elementUI时,顶部的标签页切换都会对页面进行刷新,这样页面内部的页码、页面大小等一系列状态就会被重新加载,无法保留原来的状态
一般都会邮箱想到使用Vuex来保存状态,但是保留像页码、页面大小这样不太重要的状态,外加上每个页面都加,使用Vuex写起来就会显得非常的繁琐
所以,在不太在意性能的情况下,保持不太重要的状态,我们可以使用
原理
当引入keep-alive的时候,页面第一次进入,钩子的触发顺序created-> mounted-> activated,退出时触发deactivated。当再次进入(前进或者后退)时,只触发activated
所以可以对只加载一次且需要保留状态的操作放在created和mounted中,而需要频繁更新(包括页签切换就更新,比如:任务的执行状态)的放在activated中
操作
<keep-alive> <router-view :key="key" /> </keep-alive>
注意页面组件的name要和路由的name一致
// 路由的name export default{ name: 'targetPage', components: {...} } // 页面组件的name { name:'targetPage', data(){...}, methods:{...} }
本文作者:注入灵魂
本文链接:https://www.cnblogs.com/totopian/p/16851719.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步