整合營(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无码一区二区三区不卡| 国模精品一区二区三区视频| 福利一区二区视频| 国产一区二区免费视频| 亲子乱av一区区三区40岁| 日韩精品无码一区二区视频| 蜜臀AV一区二区| 视频在线一区二区三区| 亚洲一区二区三区无码国产| 国产高清在线精品一区二区三区 | 国产免费一区二区三区在线观看| 亚洲一区二区三区高清在线观看 | 97精品国产一区二区三区| 亚洲国产一区二区三区| 国产激情一区二区三区小说| 日韩人妻无码一区二区三区久久| 亚洲一区二区三区在线播放| 久久久精品人妻一区亚美研究所| 亚洲熟女乱色一区二区三区| 亚洲国产精品一区二区三区久久| 91福利视频一区| 日韩精品一区二三区中文| 伊人久久精品一区二区三区| 一区二区三区杨幂在线观看 | 日韩精品一区二区三区中文| 在线成人综合色一区| 久久精品无码一区二区三区| 欧美人妻一区黄a片| 日韩免费视频一区二区| 国产精品综合一区二区| 日韩AV无码一区二区三区不卡| 国模精品一区二区三区| 国产精品乱码一区二区三区| 国产99视频精品一区| 国产亚洲日韩一区二区三区| 美日韩一区二区三区| 亚洲视频一区二区三区| 国模大尺度视频一区二区| 国产视频一区在线播放| 麻豆AV无码精品一区二区 |