位置: IT常识 - 正文

vue跳转页面后返回不刷新且记录历史滚动条停留位置 (实现了根据不同页面来设置是否刷新记录的功能)(vue 跳转页面)

编辑:rootadmin
vue跳转页面后返回不刷新且记录历史滚动条停留位置 (实现了根据不同页面来设置是否刷新记录的功能) 一、页面返回后不刷新        1.在路由(router/index.js)中,对不刷新的页面设置:meta: { keepAlive: true //true为需要缓存,false为不需要缓存(不需要的也可以不加) },        2.在app.vue中设置:<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>

推荐整理分享vue跳转页面后返回不刷新且记录历史滚动条停留位置 (实现了根据不同页面来设置是否刷新记录的功能)(vue 跳转页面),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:vue点击页面跳转,vue页面跳转原理,vue跳转当前页面,vue页面跳转原理,vue实现跳转页面,vue页面内跳转,vue页面内跳转,vue 跳转页面,内容如对您有帮助,希望把文章链接给更多的朋友!

这时返回就不会触发created和mounted

二、记录滚动条位置,并在页面显示时设置它:        1.在data中定义scrollTop: 0,        2.挂载: //离开路由之前执行的函数,可用于页面的反向传值,页面跳转。 beforeRouteLeave(to, from, next) { console.log("1212-beforeRouteLeave") // 记录滚动条位置 this.scrollTop = document.documentElement.getElementsByClassName("itemBoxs")[0].scrollTop || 0; //组件写法 this.scrollTop = document.documentElement.getElementById('app').scrollTop || 0; //全局写法 console.log("this.scrollTop", this.scrollTop) next() }, // 组件激活时触发 activated() { // 还原滚动条位置 console.log("1212-activated") document.getElementsByClassName("itemBoxs")[0].scrollTop = this.scrollTop || 0; //组件写法 document.getElementById('app').scrollTop = this.scrollTop || 0; //全局写法 },

以上就实现了返回页面后滚动条记忆的功能啦!

vue跳转页面后返回不刷新且记录历史滚动条停留位置 (实现了根据不同页面来设置是否刷新记录的功能)(vue 跳转页面)

如果想实现分情况决定是否记忆滚动条以及刷新组件数据,请继续往下看:

在上述keep-alive的基础上1.定义全局变量(不要在data中定义!!!)

var isRefresh = false; //定义是否需要刷新

注: 之所以在定义全局变量isRefresh而不在data里定义是因为当生命周期进入beforeRouteEnter的时候,此时当前页面还没有被mounted,因此我们是获取不到当前实例this的指向的,变量值也取不到。

2.定义beforeRouteEnter //路由进入前判断是否重新加载还是缓存 beforeRouteEnter(to, from, next){ if(from.name == 'textbookModeSelection'){ //哪个页面 进入需要刷新 isRefresh = true; //需要刷新 }else{ isRefresh = false; } next() },3.定义activated// 组件激活时触发 activated() { if(isRefresh) { //刷新 this.chooseCourseIndex = null; //清空需要的数据 document.getElementsByClassName("itemBoxs")[0].scrollTop = 0; //置顶滚动条 this.init(); //调用获取数据方法 }else{ //不刷新 还原滚动条位置 document.getElementsByClassName("itemBoxs")[0].scrollTop = this.scrollTop || 0; }

注: keep-alive之后不会执行created,mounted钩子了,在activated中判断需要刷新之后,将列表数据初始化,发起请求即可,不刷新时则返回到列表记录的滚动条的位置

4.定义beforeRouteLeave//路由离开前执行beforeRouteLeave(to, from, next) { // 记录滚动条位置 this.scrollTop = document.documentElement.getElementsByClassName("itemBoxs")[0].scrollTop || 0; next() },

完成!

本文链接地址:https://www.jiuchutong.com/zhishi/297302.html 转载请保留说明!

上一篇:HTML唱吧导航栏(唱吧地图)

下一篇:如何使用ssh密钥的方式实现无密码scp传输文件(ssh怎么带密码)

  • 做销售,老是遇到别人抢客户怎么办?(做销售的有时候特别不顺)

    做销售,老是遇到别人抢客户怎么办?(做销售的有时候特别不顺)

  • 举报限制加好友的期限(举报被限制加好友一般多长时间)

    举报限制加好友的期限(举报被限制加好友一般多长时间)

  • 戴尔win10开机卡在logo转圈(戴尔win10开机卡在logo界面)

    戴尔win10开机卡在logo转圈(戴尔win10开机卡在logo界面)

  • 游戏注销后钱会退回吗(游戏注销帐号会把钱退还吗)

    游戏注销后钱会退回吗(游戏注销帐号会把钱退还吗)

  • 怎么切换淘宝账号登录(如何切换淘宝帐号)

    怎么切换淘宝账号登录(如何切换淘宝帐号)

  • 荣耀x10刷新率(荣耀x10刷新率多少)

    荣耀x10刷新率(荣耀x10刷新率多少)

  • ipadwifi版和4g版有什么区别(ipad的wifi版和4g版有何区别)

    ipadwifi版和4g版有什么区别(ipad的wifi版和4g版有何区别)

  • a52处理器是多少(a52s参数处理器)

    a52处理器是多少(a52s参数处理器)

  • qq小海螺怎么获得(qq标识小海螺是什么意思)

    qq小海螺怎么获得(qq标识小海螺是什么意思)

  • 无损音乐刻录成CD有意义吗(无损音乐刻录成CD和U盘有区别吗)

    无损音乐刻录成CD有意义吗(无损音乐刻录成CD和U盘有区别吗)

  • 怎么看微信是哪一年注册的(怎么看微信是哪个地区的)

    怎么看微信是哪一年注册的(怎么看微信是哪个地区的)

  • 得实打印机不进纸原因(得实打印机不进纸1870)

    得实打印机不进纸原因(得实打印机不进纸1870)

  • qq如果对方把你删了你知道吗(qq如果对方把你屏蔽了怎么办)

    qq如果对方把你删了你知道吗(qq如果对方把你屏蔽了怎么办)

  • usb是并行接口方式吗(usb接口与并行接口谁大)

    usb是并行接口方式吗(usb接口与并行接口谁大)

  • 射频服务是什么意思(射频服务是什么东西在哪里可以关闭?)

    射频服务是什么意思(射频服务是什么东西在哪里可以关闭?)

  • 平板电脑二合一是什么意思?(平板电脑二合一推荐)

    平板电脑二合一是什么意思?(平板电脑二合一推荐)

  • 抖音限流会有通知吗(抖音如果限流会通知吗)

    抖音限流会有通知吗(抖音如果限流会通知吗)

  • 怎么让陌生人看不到朋友圈(怎么让陌生人看不到朋友圈背景)

    怎么让陌生人看不到朋友圈(怎么让陌生人看不到朋友圈背景)

  • 夸克链信如何解绑(夸克链信怎么解除实名认证)

    夸克链信如何解绑(夸克链信怎么解除实名认证)

  • 路由器ipv6有啥用(路由器ipv6有什么作用)

    路由器ipv6有啥用(路由器ipv6有什么作用)

  • 斗鱼房管怎么禁别人言(斗鱼房管禁言提示是什么)

    斗鱼房管怎么禁别人言(斗鱼房管禁言提示是什么)

  • 如何使用键盘关电脑(如何使用键盘关闭所有运行)

    如何使用键盘关电脑(如何使用键盘关闭所有运行)

  • gsm和global的区别(gsm和gro)

    gsm和global的区别(gsm和gro)

  • 已好评了怎样申请退款(已好评了怎样申诉)

    已好评了怎样申请退款(已好评了怎样申诉)

  • 华为p306g和8g的区别(华为p30手机6g和8g区别大吗)

    华为p306g和8g的区别(华为p30手机6g和8g区别大吗)

  • 面对面建群技术原理(微信的面对面建群有距离限制吗)

    面对面建群技术原理(微信的面对面建群有距离限制吗)

  • 【第二趴】uni-app开发工具(手把手带你安装HBuilderX、搭建第一个多端项目初体验)

    【第二趴】uni-app开发工具(手把手带你安装HBuilderX、搭建第一个多端项目初体验)

  • 缴纳房产税怎么记账
  • 契税印花税会计怎么做账务处理
  • 奖金算不算工资薪金所得
  • 高新企业收到政府补贴怎么做账
  • 财政应返还额度与财政拨款收入的关系
  • 合伙律师事务所的合伙人必须是
  • 生产性资金是生产资料吗
  • 进口货物销售不开票
  • 房地产预缴增值税是含税还是不含税
  • 水费3个点税
  • 产品税率下调企业是否要到税务部门备案
  • 服务业预收款项怎么确认收入
  • 金蝶固定资产管理
  • 企业取暖费怎么做会计分录
  • 按月预提短期借款利息
  • 设备租赁公司购进设备怎么做账
  • 劳保费计入管理费用的什么
  • 国债利润收入属于收入吗
  • 什么时候需要交个人所得税
  • 普通发票需要做分录吗?
  • 个人劳务报酬所得汇算清缴
  • 筹建期间职工福利费都要通过应付职工薪酬核算吗
  • 应交增值税进项税额借贷方向
  • 分担总部费用
  • 个体工商户比如
  • 销售额的意思
  • 公司发工资了
  • 出口0税率是免抵退还是免税
  • 出租车收税吗
  • 基本户收到个人款项的分录
  • macbook上安装windows10
  • 苹果手机id被锁定什么意思
  • windows11怎么添加桌面图标
  • 我开了一个物流公司,有人要开发票怎么办
  • 公司装修费用如何入账
  • runservice.exe - runservice是什么进程 有什么用
  • php获取ftp文件目录
  • 装饰工程施工包括什么
  • 股息分配方式
  • 加拿大西北部的首都
  • 什么是民办非企业属于民营经济吗
  • 轻资产并购
  • 其他综合收益要交企业所得税吗
  • 房产税计入哪里
  • 子公司破产对母公司是利好还是利空
  • Vue3中的pinia使用(收藏版)
  • vue2和vue3的区别大么
  • 营改增销售服务范围
  • python拆分文本文件
  • 开办费的主要账户是什么
  • 销售退回的会计科目
  • 工资总额借方和贷方的区别
  • 技术使用费所得怎么算
  • 金税四期的主要内容
  • 预缴增值税附加税需要计提吗
  • 营改增后出售土地如何缴纳增值税
  • 如何确定费用归属哪个部门
  • 小规模开票免税额度是多少
  • 无形资产摊销的会计科目怎么录
  • mysql大小
  • win8系统怎么关机
  • u盘启动pe工具
  • 电脑安装了安卓系统没用
  • WIN7如何关闭自动关机
  • NGUI字体图集导致Label文字破碎的BUG以及解决方案
  • 如何使用灭火器
  • cocos2dx4.0入门
  • js点击按钮返回前一个页面
  • 批处理命令在哪个菜单中
  • unity导出3d模型
  • JavaScript驾驭网页-DOM
  • javascript的判断语句
  • gridview行数
  • shell删除指定内容
  • 基于jQuery的AJAX和JSON实现纯html数据模板
  • JavaScript Try...Catch 声明的 使用方法
  • javascripr
  • Javascript字符串出现次数
  • 税务软件服务商
  • 车船税保单哪里打印
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设