vue中進入詳情頁記住滾動位置的方法(keep-alive)
> 有時業(yè)務提出這樣一個需求 就是從商品頁面進入到列表詳情頁 要保存當前滾動的位置,這里我就想到了keep-alive
1.首先在路由中引入需要的模塊
{ path: ‘/scrollDemo', name: ‘scrollDemo', meta: { keepAlive: true // 需要緩存 }, component: resolve => { require([‘../view/scrollDemo.vue'], resolve) } }
2.在App.vue中設置緩存組件
<keep-alive> // 緩存組件跳轉的頁面 <router-view v-if="$route.meta.keepAlive" class="ui-view" transition-mode="out-in"></router-view> </keep-alive> // 非緩存組件跳轉頁面 <router-view v-if="!$route.meta.keepAlive" class="ui-view" transition-mode="out-in"></router-view>
3.在頁面注冊對應的事件
1. 在return中定義一個初始值 scroll
2. 在mouted中 ,mouted中的方法代表dom已經加載完畢
window.addEventListener('scroll', this.handleScroll);
3.methods 用于存放頁面函數
handleScroll () { this.scroll = document.documentElement && document.documentElement.scrollTop console.log(this.scroll) }
4. activated 為keep-alive加載時調用
activated() { if(this.scroll > 0){ window.scrollTo(0, this.scroll); this.scroll = 0; window.addEventListener('scroll', this.handleScroll); } }
5.deactivated 頁面退出時關閉事件 防止其他頁面出現問題
deactivated(){ window.removeEventListener('scroll', this.handleScroll); }
以上這篇vue中進入詳情頁記住滾動位置的方法(keep-alive)就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
vue3中getCurrentInstance不推薦使用及在<script?setup>中獲取全局內容的三種方式
這篇文章主要給大家介紹了關于vue3中getCurrentInstance不推薦使用及在<script?setup>中獲取全局內容的三種方式,文中通過介紹的非常詳細,對大家的學習或者工作具有一定的參考借鑒價值,需要的朋友可以參考下2024-02-02vue2中基于vue-simple-upload實現文件分片上傳組件功能
這篇文章主要介紹了vue2中基于vue-simple-upload的文件分片上傳組件,本文通過示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-06-06使用vue-cli3 創(chuàng)建vue項目并配置VS Code 自動代碼格式化 vue語法高亮問題
這篇文章主要介紹了使用vue-cli3 創(chuàng)建vue項目,并配置VS Code 自動代碼格式化 vue語法高亮問題,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2019-05-05vue+element-ui動態(tài)生成多級表頭的方法
今天小編就為大家分享一篇vue+element-ui動態(tài)生成多級表頭的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-08-08