<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          如何在 Vue Router 里實(shí)現(xiàn)記住瀏覽器頁面的滾動(dòng)位置

          共 1077字,需瀏覽 3分鐘

           ·

          2021-11-19 22:09


          源 | https://www.cnblogs.com/classlate/archive/2021/11/02/15501987.html

          本質(zhì)就是, 利用內(nèi)置組件<keep-alive>在頁面組件得以被緩存的基礎(chǔ)上, 再加以document.documentElement.scrollTop獲取滾動(dòng)距離, 后返回頁面時(shí)恢復(fù)滾動(dòng)距離實(shí)現(xiàn)效果, 打開A頁面, 滾動(dòng)至a處, 切換至B頁面, 返回A頁面, 此時(shí)頁面位置為a點(diǎn)而非頂部。

          路由出口

           <div class="main">    <!-- 包裹`<keep-alive>` -->    <keep-alive>      <router-view></router-view>    </keep-alive>  </div>

          頁面組件

          export default { data(){ scrollTop: 0, // 儲(chǔ)存滾動(dòng)位置 }, activated() { // 進(jìn)入該組件后讀取數(shù)據(jù)變量設(shè)置滾動(dòng)位置 // 注意, 此處由頁面是否具有 DTD (如: `<!DOCTYPE html>`), 決定具體選擇, 詳見參考資料 document.documentElement.scrollTop = this.scrollTop; // document.body.scrollTop = this.scrollTop; }, beforeRouteLeave(to, from, next) { // 離開組件時(shí)保存滾動(dòng)位置 // 注意, 此時(shí)需調(diào)用路由守衛(wèi)`beforeRouterLeave`而非生命周期鉤子`deactivated` // 因?yàn)? 此時(shí)利用`deactivated`獲取的 DOM 信息已經(jīng)是新頁面得了 this.scrollTop = document.documentElement.scrollTop; next(); }, }


          學(xué)習(xí)更多技能
          請(qǐng)點(diǎn)擊下方公眾號(hào)

          瀏覽 60
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  黄色欧美精品 | 影音先锋男人资源在线 | 亚洲无| 欧美一级片在线电影 | 99热免费 |