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

Vue3頁面切換/刷新后恢復(fù)滾動位置的超精簡實現(xiàn)方案

 更新時間:2026年03月19日 08:42:52   作者:Ticnix  
在 Vue3 前端項目中,當(dāng)用戶在長列表 / 長內(nèi)容頁面滾動瀏覽后,切換到其他頁面再返回,或刷新當(dāng)前頁面時,滾動條會默認(rèn)回到頂部,體驗較差,本文將分享一種基于 ref 引用 + 本地存儲的方案,實現(xiàn)滾動位置的記憶與恢復(fù),需要的朋友可以參考下

一、需求背景

在 Vue3 前端項目中,當(dāng)用戶在長列表 / 長內(nèi)容頁面滾動瀏覽后,切換到其他頁面再返回,或刷新當(dāng)前頁面時,滾動條會默認(rèn)回到頂部,用戶需要重新滾動到之前的位置,體驗較差。本文將分享一種基于 ref 引用 + 本地存儲的方案,實現(xiàn)滾動位置的記憶與恢復(fù)。

二、核心實現(xiàn)思路

  1. 通過 ref 獲取滾動容器的 DOM 元素,精準(zhǔn)控制滾動行為;
  2. 監(jiān)聽滾動容器的滾動事件,實時記錄滾動高度并存儲到本地
  3. 頁面初始化 / 請求數(shù)據(jù)完成后,通過 nextTick 確保 DOM 渲染完成,從本地存儲讀取滾動高度并恢復(fù);
  4. 頁面銷毀前統(tǒng)一清理無用的本地存儲,避免冗余數(shù)據(jù)。

三、具體實現(xiàn)方式

template部分

<div class="content-wrapper" ref="scrollRef">
    //這里寫你滾動的內(nèi)容
    //也就是滾動條滾動的位置
</div>

js部分

定義相關(guān)參數(shù)

// 滾動容器引用
const scrollRef = ref<any | null>(null);
// 記錄離開頁面時的滾動高度
const scrollHeight = ref(0);
//定義本地儲存的滾動條相關(guān)高度的名字
const STORAGE_PROJECT_HEIGHT = 'project_height';

在你頁面數(shù)據(jù)請求完成后加上異步執(zhí)行獲取本地儲存的實例滾動高度,這樣請求完數(shù)據(jù)后讓滾動條自動跳轉(zhuǎn)到上次離開時的滾動位置

nextTick(() => {
  if (scrollRef.value) {
    //這里已經(jīng)封裝好了Storage,如果沒封裝可以用原生的localStorage.setItem(KEY, JSON.stringify(數(shù)據(jù)))
    const a: number = Storage.get(STORAGE_PROJECT_HEIGHT)?.height
    scrollRef.value.scrollTop = a
  }
})

在離開前一個頁面時執(zhí)行并且把實例滾動高度儲存到本地

onBeforeRouteLeave((to, from, next) => {
  if (scrollRef.value) {
    const scrollDom = scrollRef.value;
    const currentScrollTop = scrollDom.scrollTop;//獲取當(dāng)前滾動高度
    // 僅保存有效數(shù)值
    if (!isNaN(currentScrollTop) && currentScrollTop >= 0) {
      scrollHeight.value = currentScrollTop;
      Storage.set(STORAGE_PROJECT_HEIGHT, {
        height: currentScrollTop
      });
    }
  }
  next();
});

到此這篇關(guān)于Vue3頁面切換/刷新后恢復(fù)滾動位置的超精簡實現(xiàn)方案的文章就介紹到這了,更多相關(guān)Vue3頁面刷新恢復(fù)滾動位置內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 超詳細(xì)的vue組件間通信總結(jié)

    超詳細(xì)的vue組件間通信總結(jié)

    作為一個vue初學(xué)者不得不了解的就是組件間的數(shù)據(jù)通信(暫且不談vuex),通信方式根據(jù)組件之間的關(guān)系有不同之處,這篇文章主要給大家介紹了關(guān)于vue組件間通信的相關(guān)資料,需要的朋友可以參考下
    2021-07-07
  • vue 標(biāo)簽屬性數(shù)據(jù)綁定和拼接的實現(xiàn)方法

    vue 標(biāo)簽屬性數(shù)據(jù)綁定和拼接的實現(xiàn)方法

    這篇文章主要介紹了vue 標(biāo)簽屬性數(shù)據(jù)綁定和拼接的實現(xiàn)方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-05-05
  • Vue組件的Prop命名約定詳解

    Vue組件的Prop命名約定詳解

    這篇文章主要為大家介紹了Vue組件的Prop命名約定詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-08-08
  • 在Vue3中使用event?bus(事件總線)的步驟詳解

    在Vue3中使用event?bus(事件總線)的步驟詳解

    在Vue?3中,可以通過創(chuàng)建一個事件總線(event?bus)來實現(xiàn)組件之間的通信,要在Vue?3中使用事件總線,主要步驟有:1、創(chuàng)建一個新的Vue實例作為事件總線,2、在組件中引入并使用該事件總線,以下是詳細(xì)的步驟和示例,需要的朋友可以參考下
    2025-01-01
  • Vue3將虛擬節(jié)點渲染到網(wǎng)頁初次渲染詳解

    Vue3將虛擬節(jié)點渲染到網(wǎng)頁初次渲染詳解

    這篇文章主要為大家介紹了Vue3將虛擬節(jié)點渲染到網(wǎng)頁初次渲染詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-03-03
  • vue使用websocket及封裝過程

    vue使用websocket及封裝過程

    這篇文章主要介紹了vue使用websocket及封裝過程,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • Vue?前端?el-input?實現(xiàn)輸入框內(nèi)容始終添加在尾部%的方法

    Vue?前端?el-input?實現(xiàn)輸入框內(nèi)容始終添加在尾部%的方法

    在el-input輸入框的尾部添加%,可以通過suffix或append插槽實現(xiàn),suffix插槽簡單直接,適用于靜態(tài)顯示%,而append插槽更靈活,適用于顯示更復(fù)雜的內(nèi)容,感興趣的朋友跟隨小編一起看看吧
    2024-12-12
  • vue-cropper插件實現(xiàn)圖片截取上傳組件封裝

    vue-cropper插件實現(xiàn)圖片截取上傳組件封裝

    這篇文章主要為大家詳細(xì)介紹了vue-cropper插件實現(xiàn)圖片截取上傳組件封裝,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-05-05
  • 在Vue3和TypeScript中大文件分片上傳的實現(xiàn)與優(yōu)化

    在Vue3和TypeScript中大文件分片上傳的實現(xiàn)與優(yōu)化

    本文介紹在 Vue 3 和 TypeScript 環(huán)境下大文件分片上傳的實現(xiàn)與優(yōu)化,包括項目前后端技術(shù)棧,前端的文件切片、并發(fā)上傳、計算 Hash、斷點續(xù)傳和用戶體驗優(yōu)化,后端的文件接收存儲、切片合并、異常處理與日志記錄,還提及遇到的問題及解決方案,總結(jié)了此方式的優(yōu)勢和重要性
    2025-01-01
  • 使用vue重構(gòu)資訊頁面的實例代碼解析

    使用vue重構(gòu)資訊頁面的實例代碼解析

    這篇文章主要介紹了使用vue重構(gòu)資訊頁面的實例代碼解析,本文通過實例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-11-11

最新評論

噶尔县| 凤山县| 平安县| 永和县| 明星| 色达县| 固阳县| 迭部县| 南川市| 万荣县| 方城县| 平远县| 禄丰县| 桓台县| 彭阳县| 南投县| 大田县| 永嘉县| 固安县| 枣强县| 西贡区| 林西县| 五原县| 永昌县| 曲阳县| 礼泉县| 游戏| 泽库县| 长沙县| 界首市| 宁德市| 额济纳旗| 柳林县| 全州县| 湖州市| 隆林| 凭祥市| 河北区| 诸城市| 磴口县| 武穴市|