vue 详情页改变某条数据状态返回主页面后修改主页该条数据状态

6 篇文章 0 订阅
在移动端uniapp的微信小程序中,当用户在列表页滑动到一定位置进入详情页修改状态后,返回列表页需要实时更新数据。为避免大量数据请求,可以按需处理:数据少时重新请求全部,多时仅更新变动项。通过EventBus实现详情页与列表页通信,详情页修改状态后通知列表页局部刷新。在页面销毁前移除EventBus监听,确保资源管理得当。
摘要由CSDN通过智能技术生成
应用场景:主要是移动端(uniapp的微信小程序同样适用),用户列表页上滑到某个位置之后,点击列表的某条数据进去到详情页面,然后做了修改状态的操作,这时候返回到列表页面的时候,对应的数据应该已经被改变。数据不多的情况下可以不用分页直接重新请求全部数据,数据太多的话应该将该条列表id记录下来或者从详情起返回回来然后直接在页面修改该条数据不要去后台分页请求数据。否则如何分页的话,那么原先因为上滑已经加载了一百条数据 ,现在分页查询只回来三十条的话,会发现滚动条只是滚动到了最下面,因为没有足够的数据支撑滚动条滚动到原先的位置。(如果是pc端,每次页面上展示都是十几二十条数据的话,可以直接请求后台刷新页面数据)PS:如果是在详情页执行删除的话,需要在点击的时候保存该条数据index,然后列表页接受到通知的时候在页面上删掉该条数据同时当场打死产品经理。
1、app.vue
  <div id="app">
    <keep-alive>
      <router-view v-if="$route.meta.keepAlive" />
    </keep-alive>
    <router-view v-if="!$route.meta.keepAlive" />
  </div>
2、详情页
<a-button type="link" @click="goBack">返回上一级</a-button>
<script>
	methods: {
		goBack () {
      		window.history.back()
   	    }
    }
</script>

3、main.js
import Vue from 'vue'
Vue.prototype.$EventBus = new Vue()
4、详情页请求后台成功后通知给列表页
this.$EventBus.$emit('change-status')

5// 这里销毁页面之前一定要把监听移除,
// 我在这里移除了所有监听,这里参考了[https://zhuanlan.zhihu.com/p/72777951](https://zhuanlan.zhihu.com/p/72777951)
beforeDestroy () {
    this.$EventBus.$off()
  },
  mounted () {
    this.$EventBus.$on('change-status', () => {
      // 在这里刷新列表
      this.$refs.table.refresh(true)
    })
  },


原文链接:https://blog.csdn.net/weixin_46513664/article/details/112303370

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值