符合中小企业对网站设计、功能常规化式的企业展示型网站建设
本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...
商城网站建设因基本功能的需求不同费用上面也有很大的差别...
手机微信网站开发、微信官网、微信商城网站...
keepalive,是在TCP中一个可以检测死连接的机制。
惠东网站制作公司哪家好,找创新互联建站!从网页设计、网站建设、微信开发、APP开发、自适应网站建设等网站项目制作,到程序开发,运营维护。创新互联建站从2013年成立到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选创新互联建站。
keepalive原理很简单,TCP会在空闲了一定时间后发送数据给对方:
1.如果主机可达,对方就会响应ACK应答,就认为是存活的。
2.如果可达,但应用程序退出,对方就发FIN应答,发送TCP撤消连接。
3.如果可达,但应用程序崩溃,对方就发RST消息。
4.如果对方主机不响应ack, rst,继续发送直到超时,就撤消连接。这个时间就是默认的二个小时。
用vue做后台管理项目,特别是有列表页、列表数据详情页、列表数据修改页功能的码友们,几乎都被vue前进后退都刷新的逻辑坑过,有时候需要保存组件状态,
要求 :
1.列表页进入详情页返回列表页时列表不能刷新,连页数、筛选条件等都不能变
2.列表页进列表数据编辑页若数据有改动返回列表页列表数据得刷新,但页数、筛选条件等都不能变
3.非详情页、编辑页进入列表页时列表数据得刷新,页数、筛选条件等都全部重置
总结一下就是‘这个列表页我想让它刷新,他就得刷新,不想让他刷,他就无变化
那么是啥呢?对,是keep-alive组件,对,是它。
但单纯的keep-alive是前进后退都不会刷新的,所以需要改造一下,让它乖乖听话。这个过程需要路由路由参数meta配合我们。
1.在路由文件中为目标列表页设置meta参数,里面包含keepAlive和ifDoFresh字段
复制代码
{
path:'*',
name:'datalists',
component: resolve => require(['@/view/datalist'], resolve),
meta:{
keepAlive: true,
ifDoFresh:false
}
},
复制代码
2.在程序主入口main.vue中设置页面根据keepAlive字段判断是否使用keep-alive组件。
复制代码
复制代码
3.在目标列表页的beforeRouteEnter方法中判断页面进入方式(详情页,编辑页或其他方式),根据需求将路由参数的ifDoFresh字段设为true/false,
在页面的activated(开启了 keepAlive: true的页面在第二次进入时是无法触发mounted发法的)方法中根据ifDoFresh字段判断是否刷新页面。
复制代码
beforeRouteEnter (to, from, next) {
if(from.name!='详情页'&&from.name!='编辑页')
{
to.meta.ifDoFresh = true;
}
next();
},
activated(){
//开启了keepAlive:true后再次进入,以前的搜索条件和页数都不会变,无论什么情况都调用一下获取数据的接口,这样就能得到当前搜索条件和页数的最新数据
if(this.$route.meta.ifDoFresh){
//重置ifDoFresh
this.$route.meta.ifDoFresh = false;
//获取列表数据方法第一参数为是否重置搜索条件和页数
this.getData(true);
}else{
this.getData();
}
}
完结!