个人技术总结——Vue根据分页插件的页码,使视图监听数据变化而实时刷新

小安吉 小安吉 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
这个作业属于哪个课程软件工程实践2022春-F班
这个作业要求在哪里软件工程实践总结&个人技术博客
这个作业的目标个人技术总结
其他参考文献【重学前端框架】Vue中的视图更新原理(一)

目录

  • 技术概述
  • 技术详述
  • 遇到的问题和解决过程
  • 总结
  • 参考文献、博客

技术概述

当我们使用v-for展现数组数据时,如果数组会随着分页插件按钮的点击而变化,如何做到实时监听数组并呈现数据呢?

效果如下图所示。

img

难点在于我们需要强制vue监听数组,或者数组有变化时就强制刷新。官方文档关于检测数组变化的解释如下:

img

技术详述

1.将分页插件设置如下:

img

其中

smallCurrentPage2表示每个楼层分页插件的当前页码,监听分页页码的函数是handleSmallCurrentChange2()

2.定义二维数组

img

3.将handleSmallCurrentChange2()设置如下:

img

其中

tempReplylist:[[]]是定义在data()中的二维数组,slice()将本楼层中所有的回复根据页码进行切割,存放到this.tempReplylist中

最重要的是一定要用 this.$set(数组名,下标,数值) 替代 数组名[下标]=数值

总体代码如下:

<div  v-for="(item,index) in tempReplylist[scope.row.id]" :key="index" >
//...省略用于排版的模块
</div>
<div v-if="scope.row.replylist.length>2">
    <el-pagination
    @current-change="(smallCurrentPage2)   =>handleSmallCurrentChange2(scope.row.id,smallCurrentPage2,scope.row.replylist)"
    :page-size="smallPageSize"
    :current-page="smallCurrentPageMap.get(scope.row.id.toString())"
    layout="prev, pager, next, jumper"
    prev-text="上一页"
    next-text="下一页"
    :total=smallTotalNum>
    </el-pagination>
</div>

遇到的问题和解决过程

改变数据格式:

1.使用一维数组标记是哪个楼层的页码发生变化,此时的this.$set(..)不起作用,无法更新。

2.使用Map配合this.$forceUpdate(),(必要时设置函数延迟执行),理论上行得通,但在我这里无法达到实际要求。

3.使用二维数组,用楼层id标记并获取楼层的评论内容,即tempreplylist[id]=评论内容数组,此时评论内容数组会随时变化,就无需存储楼层页码数据

改变布局方式:

1.将页面布局用el-table替代v-for,此时因为el-table具有固定的行间距,不知道如何修改(一旦修改则整个页面的行间距都发生变化),无法达到原来的布局要求。

总结

el-pagination分页组件与v-for结合使用时,数据应存放在二维数组,即数组名[id]=页码对应内容数组,使用 this.$set(数组名,下标,数值) 替代 数组名[下标]=数值。

参考文献、博客

...全文

相关推荐

解决vue 路由变化页面数据不刷新的问题

下面小编就为大家分享一篇解决vue 路由变化页面数据不刷新的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

weixin_38682076

Vue3路由实战:从基础配置到动态路由、导航守卫与组件缓存

在单页面应用(SPA)开发中,路由是实现页面导航与状态管理的核心技术。其原理是通过监听URL变化,动态匹配并渲染对应组件,实现无刷新页面切换。这项技术的核心价值在于提升用户体验与应用性能,支持前进后退、深度链接等原生浏览器行为。在实际工程中,路由管理广泛应用于后台管理系统、电商平台等复杂前端项目,负责处理页面流、权限控制与状态同步。本文聚焦于Vue Router 4在Vue3环境下的实战应用,深入解析动态路由参数传递、导航守卫权限验证等高频场景,并针对Vue3三级嵌套路由缓存页面失效等典型问题,提供结合 `

weixin_30632883

vue在App.vue文件中监听路由变化刷新页面操作

在路由跳转时,会出现页面需要重新刷新一遍才能获取数据加载页面,这时添加一个监听器,如果跳转到页面刷新一次。 export default { name: 'App', provide(){ return{ reload:this.reload } }, data(){ return { isRouterAlive:true, } }, //监听器 watch: { // 方法1 '$route' (to, from) { //监听路由是否变化 // console.log(999) if(to.path == /){ //跳转到哪个页面 lo

weixin_38537541

vue实现前端分页完整代码

主要为大家详细介绍了vue实现前端分页完整代码,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

weixin_38548421

vue中的watch监听数据变化及watch中各属性的详解

主要介绍了vue中的watch监听数据变化及watch中的immediate、handler和deep属性详解,本文大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友参考下吧

weixin_38606041
评论
收藏 已收藏
分享
返回顶部