为了账号安全,请及时绑定邮箱和手机立即绑定

关于vue返回当前位置的问题?

关于vue返回当前位置的问题?

月关宝盒 2018-06-21 13:13:10
进入列表页之后,自动请求后台数据,然后点击进入详情页,再返回的时候,想记住上一次列表页的位置,如何实现?目前遇到了问题:1:采用哪种方式去实现这个效果1:从详情页返回列表页的时候,每次都会自动请求数据,导致根本无法记住位置
查看完整描述

2 回答

?
红糖糍粑

TA贡献1815条经验 获得超6个赞

router.js

// router用historyconst appRouter = {  mode: "history",  routes: [
    {      path: "/list",      name: "list",      component: List,      meta: {        keepAlive: true //不刷新
      }
    }
  ]
}

App.vue入口文件添加keep-alive

<template>
   <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></template>


查看完整回答
反对 回复 2018-07-15
?
慕莱坞森

TA贡献1810条经验 获得超4个赞

解决方法主要是记录位置,上面几位都说的很清楚了,如果用的vue-router的话,可以放到meta中记录位置
1、页面离开时

  beforeRouteLeave (to, from, next) {    // 这里写自己获取的位置
    let position = document.getElementById('vux_view_box_body').scrollTop    if (to.path === '/home') {      from.meta.position = 0
    } else {      from.meta.position = position
    }
    next()
  }

2、回来当前页面,在mounted中$nextTick或setTimeout后scrollTo(0, position)


查看完整回答
反对 回复 2018-07-15
  • 2 回答
  • 0 关注
  • 495 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信