91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

keepAlive的使用方法

發布時間:2020-06-16 18:05:01 來源:億速云 閱讀:198 作者:元一 欄目:web開發

keepalive,是在TCP中一個可以檢測死連接的機制。

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組件。

復制代碼
<div class="main">
<keep-alive>
<router-view v-if="$route.meta.keepAlive"/>
</keep-alive>
<router-view v-if="!$route.meta.keepAlive"/>
</div>

復制代碼
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();
}
}
完結!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

吉隆县| 榕江县| 大渡口区| 美姑县| 临夏县| 汝城县| 昌黎县| 图木舒克市| 保靖县| 开鲁县| 高邑县| 林芝县| 泰州市| 宜黄县| 迭部县| 衡南县| 正蓝旗| 诸城市| 轮台县| 马边| 明水县| 赣州市| 德江县| 延吉市| 禹城市| 万安县| 承德县| 台湾省| 伽师县| 扶风县| 英山县| 怀远县| 永济市| 山丹县| 固始县| 嘉荫县| 巧家县| 武城县| 周至县| 扶余县| 汉源县|