整合營(yíng)銷服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費(fèi)咨詢熱線:

          Vue實(shí)現(xiàn)頁(yè)面緩存

          Vue實(shí)現(xiàn)頁(yè)面緩存

          使用vue開發(fā)時(shí),當(dāng)進(jìn)行頁(yè)面之間的切換時(shí),上一個(gè)頁(yè)面將會(huì)被銷毀。但是當(dāng)我們想節(jié)省性能以及保留用戶上次操作的結(jié)果或避免ajax重復(fù)請(qǐng)求的時(shí)候,需要把某些特定的頁(yè)面緩存下來。

          keep-alive

          在vue中,提供了內(nèi)置組件 keep-alive , <keep-alive> 包裹動(dòng)態(tài)組件時(shí),會(huì)緩存不活動(dòng)的組件實(shí)例,而不是銷毀它們。和 <transition> 相似,<keep-alive> 是一個(gè)抽象組件:它自身不會(huì)渲染一個(gè) DOM 元素,也不會(huì)出現(xiàn)在父組件鏈中。

          當(dāng)組件在 <keep-alive> 內(nèi)被切換,它的 activated deactivated 這兩個(gè)生命周期鉤子函數(shù)將會(huì)被對(duì)應(yīng)執(zhí)行。

          當(dāng)我們想把所有頁(yè)面都緩存時(shí),只需要用 keep-alive 包裹 router-view 即可。

          但是大多數(shù)情況下,我們只需要把某些不需要請(qǐng)求的頁(yè)面緩存下來。則我們需要某些特定的頁(yè)面實(shí)現(xiàn)緩存即可。

          解決方法: 通過v-if 監(jiān)聽指定變量來實(shí)現(xiàn)對(duì)指定頁(yè)面的緩存;此處我監(jiān)聽的是 $route.meta 中自定義的變量。

          給需要緩存的頁(yè)面其 $route.meta 值設(shè)為 true, 不需要設(shè)為 false 。在頁(yè)面發(fā)生切換時(shí), 其 $route.meta 會(huì)做出對(duì)應(yīng)變化,通過watch 可以實(shí)時(shí)監(jiān)聽到

          之后通過v-if 來綁定此變量即可。

          效果:

          某一些特定場(chǎng)景下,跳轉(zhuǎn)頁(yè)面后再返回我們不希望銷毀組件,而是希望頁(yè)面緩存下來,保存跳轉(zhuǎn)前的狀態(tài),這時(shí)候就可以用到keep-alive組件。

          要:禁止input緩存,禁止select緩存

          有時(shí)候,我們頁(yè)面的輸入框,我們?cè)夙?yè)面里輸入內(nèi)容后,并不保存,但是刷新頁(yè)面會(huì)發(fā)現(xiàn)值為輸入的頁(yè)面,完全沒有從新去從后臺(tái)取值,這是怎么回事呢?如下:

          雷姆雷姆拉姆拉姆雷姆雷姆拉姆拉姆雷姆雷姆拉姆拉姆雷姆雷姆拉姆拉姆雷姆雷姆拉姆拉姆雷姆雷姆拉姆拉姆雷姆雷姆拉姆拉姆雷姆雷姆拉姆拉姆雷姆雷姆拉姆拉姆雷姆雷姆拉姆拉姆雷姆雷姆拉姆拉姆雷姆雷姆拉姆拉姆雷姆雷姆拉姆拉姆雷姆雷姆拉姆拉姆雷姆雷姆拉姆拉姆

          <input type="text" value="">
          <select>
          <option value="1">1</option>
          <option value="2">1</option>
          </select>

          其實(shí)多數(shù)瀏覽器默認(rèn)會(huì)緩存input的值,只有使用ctl+F5強(qiáng)制刷新的才可以清除緩存記錄。如果不想讓瀏覽器緩存input的值,很簡(jiǎn)單,只需要價(jià)格屬性即可:autocomplete=”off”

          例如上面例子,改為如下就不會(huì)緩存啦:

          <input type="text" autocomplete="off" value="">
          <select autocomplete="off">
          <option value="1">1</option>
          <option value="2">1</option>
          </select>

          聽說還有一種直接加在form表單里也可以,但是因?yàn)槲乙呀?jīng)很久沒有用form表單提交數(shù)據(jù)啦,都是用ajax異步提交的,所以我就沒有采取這種方法,也很簡(jiǎn)單的如下:

          <form action="#" autocomplete="off">  
          <input type="text" value/>  
          </form>

          當(dāng)然,沒試過不知道行不行,應(yīng)該是沒問題的!


          主站蜘蛛池模板: av在线亚洲欧洲日产一区二区| 国产精品自拍一区| 精品亚洲A∨无码一区二区三区| 风间由美在线亚洲一区| 国产成人无码一区二区三区在线 | 正在播放国产一区| 国产在线观看91精品一区| 亚洲爆乳无码一区二区三区| 国产AV天堂无码一区二区三区| 蜜臀AV在线播放一区二区三区| 成人精品视频一区二区三区不卡 | 国产麻豆精品一区二区三区| 无码人妻精品一区二区三区夜夜嗨| 无码精品人妻一区二区三区影院 | 一区二区三区四区精品| 八戒久久精品一区二区三区| 中文字幕av一区| 日本一道高清一区二区三区| 国产精品夜色一区二区三区| 亚洲香蕉久久一区二区三区四区| 亚洲日本一区二区三区在线 | 一区二区高清在线| 国产三级一区二区三区| 精品国产一区二区三区在线| 色婷婷亚洲一区二区三区| 亚洲AV噜噜一区二区三区| 欧美激情国产精品视频一区二区| 中文字幕无线码一区二区| 激情内射亚洲一区二区三区爱妻| 日韩免费一区二区三区在线| 亚洲一区二区三区成人网站 | 亚洲无线码在线一区观看| 成人无码AV一区二区| 国产在线无码视频一区二区三区| 国产人妖视频一区二区| 亚洲一区二区在线免费观看| 亚洲AV无码一区二区三区人| 天堂成人一区二区三区| 无码精品久久一区二区三区| 国产午夜精品一区二区三区小说| 久久久精品一区二区三区|