最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue實現(xiàn)前進刷新后退不刷新效果

 更新時間:2018年01月26日 09:08:46   作者:iceuncle  
這篇文章主要介紹了vue實現(xiàn)前進刷新,后退不刷新效果,即加載過的界面能緩存起來(返回不用重新加載),關閉的界面能被銷毀掉(再進入時重新加載)。本文給大家分享實現(xiàn)思路,需要的朋友可以參考下

最近在用vue嘗試著做移動端的項目。希望實現(xiàn)前進刷新、后退不刷新的效果。即加載過的界面能緩存起來(返回不用重新加載),關閉的界面能被銷毀掉(再進入時重新加載)。例如對a->b->c 前進(b,c)刷新,c->b->a 后退(b,a)不刷新。

由于 keep-alive 會把所有加載的過的界面都緩存起來,沒法實現(xiàn)返回時將界面銷毀掉,導致再進入時沒有重新加載這個界面。于是首先想到的方案是在點擊界面上返回按鈕的時候,調用 this.$destroy(true) 來將界面銷毀掉。但是在移動端 android設備上會有物理返回鍵,如果通過物理返回鍵返回的話,就沒法處理了。雖然可以重寫android的返回事件,來調用js的方法,但是調用的是js的全局方法,沒法具體讓在最上層的那個界面銷毀掉。

于是就需要另辟蹊徑了。還好這篇文章給了我啟發(fā) vue-router 之 keep-alive ,多謝作者的分享。

要是能夠知道路由是前進還是后退就好了,這樣的話我就能在后退的時候讓 from 路由的 keepAlive 置為 false , to 路由的 keepAlive 置為 ture ,就能在再次前進時,重新加載之前這個 keepAlive 被置為 false 的路由了。

廢話不多說了,這里模擬有三個界面 login 到 server 到 main 。

首先我給這三個界面路由的 path 設置了嚴格的層級關系 ,并設置keepAlive都是true,默認都是需要緩存。

const router = new Router({
 routes: [
  {
   path: '/',
   redirect: '/login'
  },
  {
   path: '/login',
   component: Login,
   meta: {
    keepAlive: true
   }
  },
  {
   path: '/login/server',
   component: ServerList,
   meta: {
    keepAlive: true
   }
  },
  {
   path: '/login/server/main',
   component: Main,
   meta: {
    keepAlive: true
   }
  }
 ]
})

由于這三個界面path的層級不同,我就能通過 beforeEach 這個鉤子判斷出什么時候是后退了。在后退時將 from 路由的 keepAlive 置為 false , to 路由的 keepAlive 置為 ture 。

router.beforeEach((to, from, next) => {
 const toDepth = to.path.split('/').length
 const fromDepth = from.path.split('/').length
 if (toDepth < fromDepth) {
  console.log('后退。。。')
  from.meta.keepAlive = false
  to.meta.keepAlive = true
 }
 next()
})

最后需要緩存的界面用 keep-alive 包起來,就能實現(xiàn)時前進刷新,后退時不刷新的效果了。

<keep-alive>
     <router-view v-if="$route.meta.keepAlive">
      <!-- 這里是會被緩存的視圖組件 -->
     </router-view>
    </keep-alive>
    <router-view v-if="!$route.meta.keepAlive">
     <!-- 這里是不被緩存的視圖組件 -->
    </router-view>

總結

以上所述是小編給大家介紹的vue實現(xiàn)前進刷新后退不刷新效果,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!

相關文章

  • vue3在table里使用elementUI的form表單驗證的示例代碼

    vue3在table里使用elementUI的form表單驗證的示例代碼

    這篇文章主要介紹了vue3在table里使用elementUI的form表單驗證的示例代碼,本文通過示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-12-12
  • vue 自定義全局方法,在組件里面的使用介紹

    vue 自定義全局方法,在組件里面的使用介紹

    下面小編就為大家介紹一下vue 自定義全局方法,在組件里面的使用。具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-02-02
  • 詳解mpvue實現(xiàn)對蘋果X安全區(qū)域的適配

    詳解mpvue實現(xiàn)對蘋果X安全區(qū)域的適配

    這篇文章主要介紹了詳解mpvue實現(xiàn)對蘋果X安全區(qū)域的適配,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-07-07
  • 使用 Element UI Table 的 slot-scope方法

    使用 Element UI Table 的 slot-scope方法

    這篇文章主要介紹了使用 Element UI Table 的 slot-scope方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-10-10
  • 解決VMware中vmware-vmx.exe進程無法關閉以及死機等問題

    解決VMware中vmware-vmx.exe進程無法關閉以及死機等問題

    這篇文章主要介紹了解決VMware中vmware-vmx.exe進程無法關閉以及死機等問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • vue項目配置使用flow類型檢查的步驟

    vue項目配置使用flow類型檢查的步驟

    這篇文章主要介紹了vue項目配置使用flow類型檢查的步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-03-03
  • vue之將echart封裝為組件

    vue之將echart封裝為組件

    這篇文章主要介紹了vue之將echart封裝為組件,本文將會以雷達圖為案例,一步步講解在vue項目中如何使用echart,如何將其封裝為能重復調用的組件
    2018-06-06
  • Vue3 + TypeScript 開發(fā)總結

    Vue3 + TypeScript 開發(fā)總結

    本文直接上 Vue3 + TypeScript + Element Plus 開發(fā)的內容,感興趣的話一起來看看吧
    2021-08-08
  • vsCode安裝配置創(chuàng)建Vue3項目全過程

    vsCode安裝配置創(chuàng)建Vue3項目全過程

    本文介紹了如何在Windows系統(tǒng)上安裝和配置Vue.js開發(fā)環(huán)境,包括安裝VS Code、Node.js、Vue CLI以及創(chuàng)建和啟動一個Vue項目
    2025-01-01
  • Vue2 添加數(shù)據(jù)可視化支持的方法步驟

    Vue2 添加數(shù)據(jù)可視化支持的方法步驟

    這篇文章主要介紹了Vue2 添加數(shù)據(jù)可視化支持的方法步驟,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-01-01

最新評論

婺源县| 宜良县| 阿鲁科尔沁旗| 忻城县| 历史| 洞头县| 乐都县| 华阴市| 丹寨县| 恭城| 聊城市| 苍山县| 霞浦县| 林芝县| 宜春市| 广饶县| 民勤县| 米脂县| 托克逊县| 长沙县| 高唐县| 连州市| 大英县| 工布江达县| 铁岭市| 罗源县| 大同市| 德州市| 乌拉特前旗| 武陟县| 商城县| 团风县| 类乌齐县| 长治县| 扎鲁特旗| 冷水江市| 渭南市| 耿马| 祁东县| 保亭| 井陉县|