vue-router中scrollBehavior的巧妙用法
问题:使用keep-alive标签后部分安卓机返回缓存页位置不精确问题
解决方案:
<div id="app"> <keep-alive> <router-view v-if="$route.meta.keepAlive"></router-view> </keep-alive> <router-view v-if="!$route.meta.keepAlive"></router-view> </div> const router = new Router({ scrollBehavior(to, from, savedPosition) { if (savedPosition && to.meta.keepAlive) { return savedPosition; } return { x: 0, y:0 }; }, });
前端全栈学习交流圈:866109386,面向1-3经验年前端开发人员,帮助突破技术瓶颈,提升思维能力 群内有大量PDF可供自取,更有干货实战项目视频进群免费领取。
- 页面返回出现空白屏问题
问题
【前提】:iOS设备 【步骤】: 页面A是个列表很长-->滑到页脚的时候点击跳转之后到页面B--->再返回A页面 --->屏幕会出现空白遮罩层--->手指轻触屏幕滑动--->遮罩层消失
解决方案一
在接口请求成功后的回调操作完成后进行该操作,例如
// fetchCourseList是一个封装好的Promise请求 fetchCourseList().then(({ data: courses }) => { this.courses = courses; }).then(() => { setTimeout(() => { window.scrollTo(0, 1); window.scrollTo(0, 0); }); });
该方案的弊端: 每个页面都需要做这样的处理,不推荐使用。
解决方案二(推荐)
使用scrollBehavior中的异步滚动操作
const router = new Router({ scrollBehavior(to, from, savedPosition) { // keep-alive 返回缓存页面后记录浏览位置 if (savedPosition && to.meta.keepAlive) { return savedPosition; } // 异步滚动操作 return new Promise((resolve) => { setTimeout(() => { resolve({ x: 0, y: 1 }); }, 0); }); }, });
前端全栈学习交流圈:866109386,面向1-3经验年前端开发人员,帮助突破技术瓶颈,提升思维能力 群内有大量PDF可供自取,更有干货实战项目视频进群免费领取。
该方案直接在路由进行处理,兼容每个页面并且页面加载完后并也不会产生1px的滚动位置。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
eclipse使用ant + ivy 配置项目jar包和依赖关系
首先,ant是版本区分的,不同版本适配不同jdk版本。 以我本机为例,本机ant版本为1.7.0对应ivy版本是2.2.0,jdk使用的1.5 将ant文件安装或解压后,配置ant的环境变量: ANT_HOME:指向ant的文件路径。 path:追加%ANT_HOME%\bin; 运行cmd,输入ant显示: Buildfile: build.xml does not exist! Build failed 输入ant -version显示: 说明ant安装成功! 另外说下ivy,本人用的下载好的2.2.0版本的ivy解压包。 主要注意的是,ant与ivy的JDK版本要一致,不然ivy不支持低版本jdk肯定也会报错的。 将ivy文件夹中的ivy-2.2.0.jar,拷到ant\lib目录下,切ant文件夹与ivy文件夹最好在同级目录下一起存放。 导入成功后,ant与ivy环境算是配置完毕了! 但是别得意!还需要配置eclipse,使它支持本机ant配置! eclipse中,打开window --- preferences --- ant --- Runtime中, 设置Ant home...
- 下一篇
在Ignite中使用k-均值聚类算法
在本系列前面的文章中,简单介绍了一下Ignite的k-最近邻(k-NN)分类算法,下面会尝试另一个机器学习算法,即使用泰坦尼克数据集介绍k-均值聚类算法。正好,Kaggle提供了CSV格式的数据集,而要分析的是两个分类:即乘客是否幸存。 为了将数据转换为Ignite支持的格式,前期需要做一些清理和格式化的工作,CSV文件中包含若干个列,如下: 乘客Id 幸存(0:否,1:是) 船票席别(1:一,2:二,3:三) 乘客姓名 性别 年龄 泰坦尼克号上的兄弟/姐妹数 泰坦尼克号上的父母/子女数 船票号码 票价 客舱号码 登船港口(C=瑟堡,Q=皇后镇,S=南安普顿) 因此首先要做的是,删除任何和特定乘客有关的、和生存无关的列,如下: 乘客Id 乘客姓名 船票号码 客舱号码 接下来会删除任何数据有缺失的行,比如年龄或者登船港口,可以对这些值进行归类,但是为了进行初步的分析,会删除缺失的值。 最后会将部分字段转换为数值类型,比如性别会被转换为: 0:女 1:男 登船港口会被转换为: 0:Q(皇后镇) 1:C(瑟堡) 2:S(南安普顿) 最终的数据集由如下的列组成: 船票席别 性别 年龄 泰坦尼克...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Red5直播服务器,属于Java语言的直播服务器
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- SpringBoot2整合Redis,开启缓存,提高访问速度
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- CentOS7,CentOS8安装Elasticsearch6.8.6
- Hadoop3单机部署,实现最简伪集群
- CentOS8编译安装MySQL8.0.19
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7,8上快速安装Gitea,搭建Git服务器