vue数组更改页面无法刷新
今一个图片列表的数组,在新增数据时页面会同步相应,但是进行删除操作时老是无法实现页面及时刷新,使用过vue set也没见效果,纠结半天,哎原来是嵌套对象的坑
一、图片上传时

页面加的图片列表的html

这里是一个方法调用接口获取一些返现的数据 赋值给ruleForm,其中dataImages是一个保存图片的数组对象
下面就是页面返现图片或者上传,删除操作


而就是在这个进行删除的操作时发现了删除完 dataImages中的数据,页面没有刷新的问题
试过许多办法无果,最后还是在看console中发现了端倪
1、第一种在删除dataImages 后console.log(this.ruleForm.dataImages)

2、第二种在删除dataImages 后console.log(this.ruleForm.dataImages)

看上面都是进行dataImages对象的splice后console后的结果,有啥不一样吗
其实很不相同(一个被观察一个没有)

看到这里终于,醒悟了,原来是data中这里只写了一个ruleForm 而他的子元素dataImages并未写进去

到这里问题水落石出,解决方法自然不用说了

修改删除方法 再次执行操作

ok 执行完删除操作页面同步更新了

二、图片返现时
上面图片上传问题解决了但是这里发现图片再次返现又是一个问题

看这个返现后的图片删除操作又出现了同样的问题

这个是请求后台接口获得了数据,将其赋值给了临时变量tempProjImages, 可以觉得这个参数错误了是吧,no并不是,这里重新定义一个参数是为了解决另一个问题
瞧

这是保存时发生异常后图片重新加载了一堆异常image
why?
来看一个save 方法就明白了

似乎明白了些

好了,再回到上面那个问题,其实这里是引用对象,内存地址修改的问题
看这里,这是fetchData方法在初始化rulForm

虽然在data 中定义了tempProjImages在vue 初始化的时候该值会被观察起来,然而在后来将其引用地址
重新指定到了另一个对象,观察也就无效了
于是最后使用set 为ruleForm添加一个响应式对象tempProjImages 整体修改如下

问题解决,记录下菜菜的经历,希望大神勿喷
vue数组更改页面无法刷新的更多相关文章
- vue 数组修改 页面无法刷新
saveData: { current: 1, records:[] , total:0}, countSaveMoney:{ bidSuccessMoney:0, saveMoney:0},页面上有 ...
- [one day one question] Vue数组变更不能触发刷新
问题描述:Vue数组变更不能触发刷新,特别是数组的每个元素都是对象的时候,对象中某个属性的值发生变化,根本无法触发Vue的dom刷新,这怎么破? 解决方案:this.$set(array, index ...
- Vue+WebSocket 实现页面实时刷新长连接
最近vue项目要做数据实时刷新,折线图每秒重画一次,数据每0.5秒刷新一次,说白了就是实时刷新,因为数据量较大,用定时器估计页面停留一会就会卡死... 与后台人员讨论过后决定使用h5新增的WebSoc ...
- Vue 更改数组中的值,页面不刷新问题。解决方法+原理说明
一.Vue 更改数组中的值,页面不刷新问题 data{ hobby:["打游戏","想静静","发呆"] } 1.错误写法(页面不刷新): ...
- vue单页面应用刷新网页后vuex的state数据丢失的解决方案
1. 产生原因其实很简单,因为store里的数据是保存在运行内存中的,当页面刷新时,页面会重新加载vue实例,store里面的数据就会被重新赋值. 2. 解决思路一种是state里的数据全部是通过请求 ...
- vue单页面应用刷新网页后vuex的state数据丢失问题以及beforeunload的兼容性
最近在用vue写h5项目,当使用window.location重定向页面或者刷新当前页面时, 发现当刷新网页后,保存在vuex实例store里的数据会丢失. 后来在网上查找大神的解决方案如下: exp ...
- 前端 vue单页面应用刷新网页后vuex的state数据丢失的解决方案(转载)
最近接手了一个项目,前端后端都要做,之前一直在做服务端的语言.框架和环境,前端啥都不会啊. 突然需要前端编程,两天速成了JS和VUE框架,可惜还是个半吊子.然后遇到了一个困扰了一整天的问题.一直调试都 ...
- 简述在Js或Vue中监听页面的刷新、关闭操作
1.背景 大家是否经常遇到在关闭网页的时候,会看到一个确定是否离开当前页面的提示框?想一些在线测试系统.信息录入系统等就经常会有这一些提示,避免用户有意或者无意中关掉了页面,导致数据丢失.而最近在做项 ...
- Vue build打包之后,刷新页面出现404解决方案
Vue build打包之后,刷新页面出现404,HTML5 History 模式 原因分析: vue-router 默认 hash 模式 —— 使用 URL 的 hash 来模拟一个完整的 URL,于 ...
- vue 数组中嵌套的对象添加新属性--页面更新
vue 数组中嵌套的对象添加新属性--页面更新:https://www.jianshu.com/p/8f0e5bb13735
随机推荐
- ElasticSearch 实现分词全文检索 - id、ids、prefix、fuzzy、wildcard、range、regexp 查询
目录 ElasticSearch 实现分词全文检索 - 概述 ElasticSearch 实现分词全文检索 - ES.Kibana.IK安装 ElasticSearch 实现分词全文检索 - Rest ...
- Java8 获取当天日期的前一天
LocalDateTime.now().plusDays(-1).format(DateTimeFormatter.ofPattern("yyyy-MM-dd"))
- 自己动手从零写桌面操作系统GrapeOS系列教程——14.屏幕显示原理与文本模式
学习操作系统原理最好的方法是自己写一个简单的操作系统. 一.屏幕显示原理 电脑显示器屏幕是由很多很小的像素组成的.每个像素就像是一个小灯泡,在屏幕上一排一排的整齐排列着.只要能控制每个像素的颜色就能显 ...
- 基于 RocketMQ Connect 构建数据流转处理平台
本文作者:周波,阿里云智能高级开发工程师, Apache RocketMQ Committer . 01 从问题中来的RocketMQ Connect 在电商系统.金融系统及物流系统,我们经常可以看到 ...
- KMP 自动机,孤独的自动机(同时也是CF1721E的题解)
给定字符串 \(s\),以及 \(q\) 个串 \(t_i\),求将 \(s\) 分别与每个 \(t_i\) 拼接起来后,最靠右的 \(|t_i|\) 个前缀的 border 长度.询问间相互独立. ...
- 基于深度学习的农作物叶片病害检测系统(UI界面+YOLOv5+训练数据集)
摘要:农作物叶片病害检测系统用于智能检测常见农作物叶片病害情况,自动化标注.记录和保存病害位置和类型,辅助作物病害防治以增加产值.本文详细介绍基于YOLOv5深度学习模型的农作物叶片病害检测系统,在介 ...
- 64位的单周期 RISC-V 模拟器
分享一个我最近完成过的小项目--64位的单周期 RISC-V 模拟器,这个项目我最近参与一生一芯计划过程中完成的一个小项目. 需要用到的相关知识:Verilog.Verilator.计算机组成原理.汇 ...
- Yaml入门与使用
一.入门 1.概念: yml是YAML("YAML Ain't a Markup Language)语言文件,以数据为中心,而不是一标记语言为重点,比json,xml更适合做配置文件. 为 ...
- Django后端 服务器找不到template(路径问题)
Django后端 服务器找不到template(路径问题) 该代码在本地跑没有任何问题, 但是上传到服务器上报错找不到模板或者模板不存在. 看网页最下方报错(一定要看报错!!)显示路径有问题 问题原因 ...
- LeeCode 动态规划(四)
LeeCode 动态规划(四) LeeCode 198:打家劫舍 题目描述 你是一个专业的小偷,计划偷窃沿街的房屋.每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系 ...