vue列表首次刷新
来源:互联网 发布:sql server2008序列号 编辑:程序博客网 时间:2024/06/05 07:04
业务需求
从列表页通过路由跳转至详情页,在详情页点返回按钮时,回到列表页。并保存滚动条状态高度,列表数据不刷新。
解决思路
页面缓存
通过 keep-alive 属性 缓存页面。mounted 只执行一次,所以做第一次获取加载数据。activated每次进入页面都会执行。
滚动条高度
通过获取滚动元素的scrollTop高度,将获取的高度存入store中,再返回时 通过 activated 改变滚动条高度
参考代码
<!--父组件--><keep-alive> <router-view class="box"> </router-view></keep-alive>
在父组件的 router-view 外嵌套 keep-alive
//第一次进入执行的函数 mounted: function () { }, //每次进入都执行的函数 activated: function () { } //如果想 数据列表只刷新一次 那么只需要在 mouted函数里 写一个数据请求 那么用户通过路由跳转 再次返回界面是 数据不需要重新加载和渲染
完整代码
store.js(vuex)
import Vue from 'vue'import Vuex from 'vuex'Vue.use(Vuex)let store=new Vuex.Store({ state:{ scrollTop:0 }, mutations:{ myscrollTop:(state,scrollTop)=>{ state.scrollTop=scrollTop } }})export default store
父组件代码
<template> <div class="m-index"> <keep-alive> <router-view> </router-view> </keep-alive> </div></template><script> export default { data(){ return{ } } }</script>
子组件代码
<template> <div class="m-home"> <div v-for="item in data" :key="item.key" @click="jump(item)">item</div> </div></template><script>import Vue from 'vue'import axios from 'axios'import store from '../../vuex/store.js'//判断数据列表条数 固定或非固定footerexport default { data: function data() { return { lawyerlist:[] } },methods:{ jump(index){ //跳转到另一个页面 this.$router.push({ name: 'register'}) //保存scrollTop 值 store.commit("myscrollTop",document.getElementsByClassName("m-home")[0].scrollTop) }}, //第一次进入页面刷新 mounted: function mounted() { //do something after mounting vue instance let that=this axios.get('http://10.10.1.156:3005/people') .then(function (res) { that.lawyerlist=res.data }) .catch(function (error) { console.log(error); }); }, //每次进入时都执行的函数 activated: function () { //进入页面直接改变scrollTop document.getElementsByClassName("m-home")[0].scrollTop=store.state.scrollTop }}</script><style lang="scss"></style>
阅读全文
1 0
- vue列表首次刷新
- vue刷新数据
- vue 刷新当前路由
- vue首次赋值不触发watch
- Vue列表循环
- Vue 实现 任务列表
- Vue列表过渡
- Vue列表过渡
- vue列表跳转处理
- Android SwiperRefreshLayout 首次加载显示刷新动画
- 实现SwipeRefreshLayout首次进入自动刷新
- SwipeRefreshLayout 首次进入界面自动下拉刷新
- js 首次进入页面刷新一次
- vue刷新和tab切换
- 通过vue刷新左侧菜单栏
- vue history 刷新出现404
- Vue基础之Vue列表渲染
- 列表下拉刷新
- Basic Structure 基本结构:
- Leetcode Set Matrix Zeroes
- 对象与类_知识点笔记
- EXCEL或者WPS excel 某列从某行开始以上或以下全选的操作 ,某行从某列开始的以后全选
- php面试题之三——PHP网络编程(高级部分)
- vue列表首次刷新
- github上如何删除项目
- 微信服务号推送模板信息服务器验证与模板消息推送
- android 框架
- 列车以太网总线及TRDP的概述
- input之上层(二)
- Appium之无法Launch Appium Inspector的问题
- 设计模式之迭代器模式
- php面试题之四——PHP面向对象(基础部分)