Vue详情页回列表页保存原数据与位置。

列表页关键代码

mounted() {

        //非从详情页返回时正常加载数据
        if (!this.$route.meta.isBack) {
            //执行加载数据的方法
           //重新加载页面
        } else {
            // this.onFetching = true;
            this.curPage = sessionStorage.getItem(‘curPage‘);
            //存储分页第几页,用于返回列表页继续可以分页

            ...
        }
        //执行完初始化isBack
        this.$route.meta.isBack = false
    },
    beforeRouteLeave(to, from, next) {
        if(to.name == ‘bbs_detail‘) {
            //跳转为详情页,就保存当前滚动的页数
            sessionStorage.setItem(‘curPage‘, this.curPage);
        } else {
           //跳转为非详情页,滚动的页数归1
            sessionStorage.setItem(‘curPage‘, 1);
        }
        next();
    },

main.js

// 返回定位
router.afterEach((to,from) => {
    let path = to.path;
    //判断需要定位的路由地址
    if(path == ‘/bbs‘){
                //获取储存起来的位置
        let scrollTop = sessionStorage.getItem(‘scrollTop‘);
        if(scrollTop){
            setTimeout(()=>{
                //页面渲染完成后,在滚动,位置才是正确的,所以加个延迟
                document.getElementById(‘app‘).scrollTop = scrollTop;
                sessionStorage.setItem(‘scrollTop‘,0);   //定位后还原储存位置信息
            },300)
        }
    }else{
        //除了特定地址,其他的都返回顶部

        sessionStorage.setItem(‘scrollTop‘, document.getElementById(‘app‘).scrollTop*1);//储存位置

        document.getElementById(‘app‘).scrollTop = 0;
    }
})

原文地址:https://www.cnblogs.com/niubenbit/p/11437855.html

时间: 2024-10-24 19:50:09

Vue详情页回列表页保存原数据与位置。的相关文章

vue+h-ui+layUI完成列表页及编辑页

最近做一个新项目,用H-ui做后台, 比较喜欢他的模仿bootsharp的栅格和表单样式. 感觉不好的是iframe加载速度比较慢. 这里在原有的H-ui页面基础上加入用vue来绑数据,用的还可以. 用layui分页控件来绑分页加载,用layer作为弹窗显示 以后改造为用x-admin的首页,加H-ui的编辑和列表也,这样就解决了iframe加载比较慢的问题 列表页: <!DOCTYPE html><html><head> <meta charset="

VUE:v-for获取列表前n个数据、中间范围数据、末尾n条数据的方法

说明: 1.开发使用的UI是mintUI, 要求: 1.获取6到13之间的数据:items.slice(6,13) <mt-cell v-for="(item,index) in items.slice(6,13)" :title="item.title" :key='index'> <a :href="item.url" :title="item.title" class="list-url&qu

微信 HTML5 实现列表页与详情页无刷新返回 seesionStorage

最近在最微信端开发,遇到了一个比较有意思的问题. 1:商品分页列表页 2:商品详情页 需求:  实现当在第N页的列表页,点击ID=Num的商品详情页,跳转到详情页后,再点击返回按钮,依旧返回到列表第N页,并显式的改变ID=Num商品的查看状态 注:详情页与列表页是两个视图页,并且要考虑弱网请求服务端接口比较慢的情况 解决思路:使用sessionStorage 在列表页中将请求服务端接口返回的列表信息使用一个对象dataList存储起来,并记录当前的页码pageIndex,当点击跳转某个商品详情页

dedecms讲解-arc.listview.class.php分析,列表页展示

./plus/list.php - 动态展示栏目列表页(也可能是频道封面) arc.listview.class.php 是dedecms的列表页的相关处理类 __construct()           // 初始化一些字段,变量CountRecord()           // 统计列表记录,总条目数,每页条目数,并对列表模板进行解析MakeHtml()              // 创建列表页HTML,主要是后台批量生成Display()               // 解析并展示

用Flutter开发的跨平台项目,完美运行在Android和IOS上,Material简洁风格,包括启动页、引导页、注册、登录、首页、体系、公众号、导航、项目,还有漂亮的妹子图库,运行极度流畅,结构清晰,代码规范,值得拥有

Flutter学习资源汇总持续更新中...... Flutter官方网站 Flutter中文网 wendux的Flutter实战 Flutter官方exampleflutter_gallery 阿里巴巴咸鱼团队系列文章 阿里巴巴flutter-go,flutter 开发者帮助 APP,包含 flutter 常用 140+ 组件的demo 演示与中文文档 玩Android跨平台项目 非常有用的Json转Model插件 Flutter-Notebook,提供了很多优秀样例和Demo 前言 这是一款使

vue——列表页进详情页,第一次很慢,第二次就很快问题解决方法

参考:https://segmentfault.com/q/1010000010829474 问题:列表页进详情页,第一次很慢,第二次就很快. 原因:我原本是使用组件懒加载,每次第一次切换路由的时候,都要去加载相应的组件的js文件,需要等文件加载完之后,路由才能切换过去.后面切换的话js都下载过了,所以切换就不卡了. 原router.js: import Vue from 'vue' import Router from 'vue-router' Vue.use(Router) export d

element ui源码解析 -- Pagination篇( 副:列表页进入详情页再返回后,如何保持当前页码正确 )

之所以看Pagination源码,由于一个问题: 需求:从列表页进入详情页后再返回,需求方希望保持在当前的页码而不是重新定位到第一页 问题:按照element ui文档设置current-page后请求的数据正常,但pagination的页码显示却不正确,不管current-page值等于多少,永远显示第一页 解决方案: 1. 改 :current-page="currentPage" 为 :current-page.sync="currentPage" 2.查询接

Meteor 从一个列表页进入详情页如何快速显示详情

不管是做android开发,还是做网页web开发,都 会有列表,都需要点击列表进入列表项的详情页面,查看详细信息,能常情况下,我们都是将这一列表项的id传到详情页,由详情页再到数据库查询详细信息. 在用Meteor开发网站中,除了用传id的方法,外还提供了一种简单的方法,极大的方便了我们的开发,节省时间. 原文:http://blog.csdn.net/casun_li/article/details/46371811 1. 创建详情页的route  并传数据: (1)如可按传id的方法,则这样

微信小程序 项目实战(三)list 列表页 及 item 详情页

1.项目结构 2.list 列表页 (1)数据(逻辑) list.js // pages/list/list.js Page({ /** * 页面的初始数据 */ data: { title: '加载中...', // 状态 list: [], // 数据列表 type: '', // 数据类型 loading: true // 显示等待框 }, /** * 生命周期函数--监听页面加载 */ onLoad: function (options) { // options 为 board页传来的