用指令管理vue滚动状态以及滚动条复原,让你为所欲为。

本文主要是介绍用指令管理vue滚动状态以及滚动条复原,让你为所欲为。,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

       滚动状态管理以及滚动条复原是困扰了我很久的问题,想必也有和我有同样感受的同学,比如首页跳详情页,以及各详情页滚动条的管理,让人感觉很难受,那么如何来简化它呢?那么就使用这款神奇的插件vue-rescroll吧,让你疯狂飙车,为所欲为。

       用了指令就不可以用keep-alive来进行缓存,因为那样自定义指令里的钩子函数不会触发,自然指令就失效了,一般的滚动插件配合vuex,可以开启数据的局部缓存,就是在页面返回之后不再请求,当滚动条再次拉到vuex里保存的pageindex(后台接口给的页数参数)时再去继续请求。

       对于每个list对应的点击之后进入的详情页如果也需要的保存滚动条的话,也是同样的方法,不过不需要缓存数据,因为没有下拉加载的这些操作。如果想做持久化记录的话,可以使用插件的localstorage模式,这样每次你进到对应的详情都会滚动到你的上次浏览的位置。

       这里比较恶心的,就是tab切换,几个模块共用的是一个滚动条,一个页面滚动了,其他的都会受影响,当时写的时候有点被恶心到了,相信大部分同学应该深有同感,请设置插件的domType为tab,则不会受公用滚动条的影响了。

注意:vue3.0版本请前往这里,用法一样。

install


npm install vue-rescroll --save

use

全局注册/Global registration (main.js)

import VueRescroll from 'vue-rescroll'
Vue.use(VueRescroll);

局部注册/Partial registration (*.vue)

import { directive } from 'vue-rescroll';
directives: {'rescroll': directive
}

*.vue

使用默认配置/use default config

<div v-rescroll="{name: 'A unique marker'}"></div>
参数
keyrequirevaluetypediscribe
name string用来保存滚动状态的key值
type'default'/'window'string滚动类型(局部,全局)
storageMode'default'/'localstorage'string滚动状态保存方式
domType'default'/'tab'string是否为tab切换组件

 

<divv-rescroll="{name: `${id}-scroll`,type: 'window',storageMode: 'localstorage'}"
></div>

github地址:https://github.com/Vitaminaq/vue-rescroll

实践项目:传送门

演示地址:传送门 (由于我这里只存放在当前实例上,所以刷新浏览器无效,请滑动到一定距离,进详情页,后退,或者直接在详情页查看)

有同学觉得这样实用又方便的话,欢迎star,欢迎讨论,无时不在。

这篇关于用指令管理vue滚动状态以及滚动条复原,让你为所欲为。的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/856778

相关文章

Java实现Excel与HTML互转

《Java实现Excel与HTML互转》Excel是一种电子表格格式,而HTM则是一种用于创建网页的标记语言,虽然两者在用途上存在差异,但有时我们需要将数据从一种格式转换为另一种格式,下面我们就来看看... Excel是一种电子表格格式,广泛用于数据处理和分析,而HTM则是一种用于创建网页的标记语言。虽然两

高效管理你的Linux系统: Debian操作系统常用命令指南

《高效管理你的Linux系统:Debian操作系统常用命令指南》在Debian操作系统中,了解和掌握常用命令对于提高工作效率和系统管理至关重要,本文将详细介绍Debian的常用命令,帮助读者更好地使... Debian是一个流行的linux发行版,它以其稳定性、强大的软件包管理和丰富的社区资源而闻名。在使用

vue解决子组件样式覆盖问题scoped deep

《vue解决子组件样式覆盖问题scopeddeep》文章主要介绍了在Vue项目中处理全局样式和局部样式的方法,包括使用scoped属性和深度选择器(/deep/)来覆盖子组件的样式,作者建议所有组件... 目录前言scoped分析deep分析使用总结所有组件必须加scoped父组件覆盖子组件使用deep前言

VUE动态绑定class类的三种常用方式及适用场景详解

《VUE动态绑定class类的三种常用方式及适用场景详解》文章介绍了在实际开发中动态绑定class的三种常见情况及其解决方案,包括根据不同的返回值渲染不同的class样式、给模块添加基础样式以及根据设... 目录前言1.动态选择class样式(对象添加:情景一)2.动态添加一个class样式(字符串添加:情

React实现原生APP切换效果

《React实现原生APP切换效果》最近需要使用Hybrid的方式开发一个APP,交互和原生APP相似并且需要IM通信,本文给大家介绍了使用React实现原生APP切换效果,文中通过代码示例讲解的非常... 目录背景需求概览技术栈实现步骤根据 react-router-dom 文档配置好路由添加过渡动画使用

SpringBoot使用minio进行文件管理的流程步骤

《SpringBoot使用minio进行文件管理的流程步骤》MinIO是一个高性能的对象存储系统,兼容AmazonS3API,该软件设计用于处理非结构化数据,如图片、视频、日志文件以及备份数据等,本文... 目录一、拉取minio镜像二、创建配置文件和上传文件的目录三、启动容器四、浏览器登录 minio五、

IDEA中的Kafka管理神器详解

《IDEA中的Kafka管理神器详解》这款基于IDEA插件实现的Kafka管理工具,能够在本地IDE环境中直接运行,简化了设置流程,为开发者提供了更加紧密集成、高效且直观的Kafka操作体验... 目录免安装:IDEA中的Kafka管理神器!简介安装必要的插件创建 Kafka 连接第一步:创建连接第二步:选

使用Vue.js报错:ReferenceError: “Vue is not defined“ 的原因与解决方案

《使用Vue.js报错:ReferenceError:“Vueisnotdefined“的原因与解决方案》在前端开发中,ReferenceError:Vueisnotdefined是一个常见... 目录一、错误描述二、错误成因分析三、解决方案1. 检查 vue.js 的引入方式2. 验证 npm 安装3.

vue如何监听对象或者数组某个属性的变化详解

《vue如何监听对象或者数组某个属性的变化详解》这篇文章主要给大家介绍了关于vue如何监听对象或者数组某个属性的变化,在Vue.js中可以通过watch监听属性变化并动态修改其他属性的值,watch通... 目录前言用watch监听深度监听使用计算属性watch和计算属性的区别在vue 3中使用watchE

python解析HTML并提取span标签中的文本

《python解析HTML并提取span标签中的文本》在网页开发和数据抓取过程中,我们经常需要从HTML页面中提取信息,尤其是span元素中的文本,span标签是一个行内元素,通常用于包装一小段文本或... 目录一、安装相关依赖二、html 页面结构三、使用 BeautifulSoup javascript