nuxt项目中从列表进入详情,返回记住当前位置

1.在要保存位置的页面route的meta中添加
refreshFlag:true, scrollTop:0
2.default.vue中添加要保存位置的组件名称
<nuxt keep-alive :keep-alive-props="{ include: includeArr }"/>
data(){ 
    return{ 
       			 includeArr:['supplierProductIndex'],//需要缓存的组件
         }
   }
3.要保存的组件中
设置滚动css样式

<template>
<div class="supplierScrollHeightView"
 ref="supplierScrollRef"
 @scroll="getScrollHandle"> </div>
 </template>
 <script>
export default{
 name:'index',
  data(){ 
    return { 
        scrollTop:0
     } 
     },
 methods:{
		getScrollHandle(e){ 
		    let wScrollY = e.target.scrollTop; // 当前滚动条位置
		     this.scrollTop = wScrollY;
		      let wInnerH = e.target.clientHeight; // 设备窗口的高度(不会变) 
		      let bScrollH = e.target.scrollHeight; // 元素总高度 
		      if (wScrollY + wInnerH >= bScrollH - 1) {
		       this.goBottomHandle() ;//到达底部
       }
	},

}    
},
activated() {
	  this.$refs.commentScrollRef.scrollTop = this.$route.meta.scrollTop;
	  if(this.$route.meta.refreshFlag){
	    	//基本操作,获取数据
	      }

},
beforeRouteLeave(to,from,next){ 
    from.meta.scrollTop = this.scrollTop; 
    next();
  },

beforeRouteEnter(to,from,next){ 
        if(from.name=='goodDetail'){
        	//来自详情页
             to.meta.refreshFlag=false; 
        }else{ 
            to.meta.refreshFlag = true; 
            to.meta.scrollTop=0;
      } 
      next(); 
      },
      
 </script>
 <style>
.supplierScrollHeightView{ width: 100%; overflow-x:hidden; overflow-y:scroll; height:calc(100vh - 95px) }
</style>
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值