The scroll bar position is retained when scrolling the vant list component. This needs to be used in conjunction with keepAlive. I share this article for your reference. 1. The premise of saving the location is to use the keepAlive component for caching, app.vue code <template> <div id="app"> <keep-alive> <router-view v-if='$route.meta.keepAlive'/> </keep-alive> <router-view v-if='!$route.meta.keepAlive'/> </div> </template> 2. In the routing file router.js, add scrollTop and keepAlive to each routing meta { path: '/home', name: 'home', component: resolve => require(['@/views/home/index.vue'], resolve), meta: { title: 'Homepage', index: 1, keepAlive: true, scrollTop: 0 } }, { path: '/classify', name: 'classify', component: resolve => require(['@/views/classify/index.vue'], resolve), meta: { title: 'Classification', index: 1, keepAlive: true, scrollTop: 0 } }, { path: '/shopping', name: 'shopping', component: resolve => require(['@/views/shopping/index.vue'], resolve), meta: { title: 'Shopping Cart', index: 1, keepAlive: true, scrollTop: 0 } }, { path: '/detail', name: 'detail', component: resolve => require(['@/views/detail/index.vue'], resolve), meta: { title: 'Details', index: 2, // keepAlive: true, // scrollTop: 0 } }, 3. Then in main.js, record the position of the scroll bar router.beforeEach((to, from, next) => { if (from.meta.keepAlive) { const $wrapper = document.querySelector('.app-wrapper'); // The outer container of the list should pay attention to finding the scrolling box const scrollTop = $wrapper ? $wrapper.scrollTop : 0; console.log('scrollTop=', scrollTop) from.meta.scrollTop = scrollTop; } next(); }); 4. Finally, get the scrollTop by activated (this function will be executed every time you enter the page, and it is only effective when used in conjunction with the keepAlive component) where you need to record the scroll bar position activated () { const scrollTop = this.$route.meta.scrollTop; const $wrapper = document.querySelector('.app-wrapper'); if (scrollTop && $wrapper) { $wrapper.scrollTop = scrollTop; } }, For example, if you cache some pages and do not want to scroll with them, you can set scrollTop to 0; activated() { const $wrapper = document.querySelector(".app-wrapper"); $wrapper.scrollTop = 0; }, Note that if the page scrolls, other pages with scroll bars will also scroll with it. You can process it in other pages, or determine whether to cache the location from the detail page to the list page. If not, return to the top, but pay attention to the use of the routing hook function this; You may also be interested in:
|
<<: Understand the principle of page replacement algorithm through code examples
>>: How to enable the root account in Ubuntu 20.04
Table of contents 1. Why use slots? 1.1 slot 1.2 ...
This article shares the installation and configur...
Table of contents Preface Generation of redo log ...
Preface In order to follow the conventional WEB l...
1. Check whether event is enabled show variables ...
Table of contents Solution 1: Rebuild Replicas Pr...
In the previous article "Understanding UID a...
docker-compose.yml version: '2' services:...
WeChat applet calculator example, for your refere...
Stored Procedures 1. Create a stored procedure an...
Preface: Due to my work, I am involved in the fie...
The local environment is Windows 10 + WSL2 (Ubunt...
Preface Recently, I have been helping clients con...
This article example shares the specific code of ...
Take 3 consecutive days as an example, using the ...