Vue 疑难扎症(一)有时候取不到Vue对象中值怎么办?对象值发生改变了但是页面没有刷新怎么办?

news2024/11/15 18:05:16

 

目录

有时候取不到对象中值怎么办?

问题截图 

问题代码

问题分析

情况1

情况2

情况3

问题解决

对象值发生改变了但是页面没有刷新怎么办? 

为什么?

常见错误写法:

怎么办?


有时候取不到对象中值怎么办?

Axios怎么使用同步请求?

问题截图

 问题代码

 beforeAvatarUpload(file) {
  let this_ = this;
    this_.file = file
    let data = {"file": file}
    this.$http.post(ApiOrigin + "/Upload", data, {
      headers: {'Content-Type': 'multipart/form-data'}
    }).then((resp) => {
      this_.addForm.articleThImg = resp.data.data
      this_.updateForm.articleThImg = resp.data.data
    })
//`````

console.log(this.addForm)

console.log(this.addForm.articleThImg)

//`````` 
 return errms.length <= 0;
}, 

问题分析

        这段代码干了个什么呢?就是,是一个上传图片的操作,前端上传图片给后端之后,后端会返回给前端一个对象,然后这个对象我就是存在这个resp.data.data中,然后这个对象里面的数据就是这个直链的链接了,然后我们可以将这个直链的链接填充到前端的一个变量中。

那我想问,现在这个console.log中输出的值,前提是咱们在上传成功之后,它是否能够输出值呢?

答案是可能,为什么是可能而不是一定那?

因为axios是一个异步通信的一个方式,这个log函数,和post请求,他们是不是一个同步的关系可能就不是从上到下按顺序执行的,就是说他这个打印函数可能是先执行的,然后他并没有等待post的执行完毕才去执行,所以就出现了,就是打印出来的数据是空的。

情况1

对象中没有值,属性中自然没有值

原因:
axios是一个异步通信的一个方式,是异步发送响应请求的,后面的代码先执行了

情况2

对象中有值,属性中也可以取到值,但是取到的是上一次的值

 

原因:
虽然axios是一个异步通信的一个方式,但是只要请求响应够快,后面的代码也可以顺序执行,如果多次上传,就会造成直接取到了上一次的值

情况3

对象中有值,但是却取不到

原因:
出现在第一次上传时,原因还是异步代码问题,下面的跑的快

问题解决:

使用同步的方式即可:
如下为改进后的代码

async beforeAvatarUpload(file) {
  let this_ = this;
    this_.file = file
    let data = {"file": file}
    await this.$http.post(ApiOrigin + "/Upload", data, {
      headers: {'Content-Type': 'multipart/form-data'}
    }).then((resp) => {
      this_.addForm.articleThImg = resp.data.data
      this_.updateForm.articleThImg = resp.data.data
    })
//`````

console.log(this.addForm)

console.log(this.addForm.articleThImg)

//`````` 
 return errms.length <= 0;
}, 

对象值发生改变了但是页面没有刷新怎么办? 

为什么?

这是由于 JavaScript 语言本身的限制,使得Vue 不能检测对象属性的添加或删除,

也就是说,当你直接在Vue代码中对一个对象它的属性进行添加和删除时,Vue并不会去刷新组件,这是一个天坑,一定要记住!!

常见错误写法:

//对象属性的增加
this_.addForm.articleThImg = resp.data.data
//对象属性的删除
delete this_.addForm.articleThImg

像这种是无法引起组件的刷新的

怎么办?

3种方法来帮助你!!

1 使用$set

2 使用Object.assign()

3 使用强制刷新

          //对象属性的增加
          //写法1->通过$set
          this.$set(this.addForm,"articleThImg",resp.data.data)
          //写法2->通过Object.assign
          this.addForm.articleThImg=resp.data.data
          this.addForm=Object.assign({},this.addForm)
          // 写法3->还是使用错误的写法,但是使用强制刷新
          this_.addForm.articleThImg = resp.data.data
          //强制刷新
          this_.$forceUpdate()

个人推荐使用第一种!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/130832.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Node.js--》如何在Node.js中使用中间件,看这一篇就足够了

目录 中间件 中间件函数使用 中间件的作用 中间件分类 使用中间件的注意事项 编写接口 跨域问题及其解决方案 中间件 中间件特指业务流程的中间处理环节。当一个请求到达 Express 的服务器之后&#xff0c;可以连续调用多个中间件&#xff0c;从而对这次请求进行预处理…

【网络排查】用于接口不通,mysql,kafka等数据库介质连不上的排查

这篇文章记录生产实践中遇到的网络不通的例子 文章目录前言1. 网络协议1.1 应用层找到有问题的服务端 IP总结前言 接口调用不同了了怎么办&#xff1f; 就找接口服务提供方&#xff0c;肯定是提供方的问题的&#xff0c;跟调用方有啥关系~ kafka&#xff0c;mysql等数据库介质…

JAVAGUI编程初识之Swing

文章目录一 常用窗口1.1 JFrame框架窗口1.2 演示-JFRame,JLable的使用1.3 JDialog标签1.3.1 演示-JDialog标签二 标签组件2.1 标签2.2 图标2.2.1 ICon接口简介2.2.2 演示-用Icon接口创建图标2.3 图片图标2.3.1 演示-图片图标三 布局管理器3.1 绝对布局3.1.1 绝对布局简介3.1.2 …

年末再看指针。看来搞C/C++,如影随形的指针就得门清~~~

继上篇博文因内核页表引出的指针问题&#xff0c;后来又研究了一番&#xff0c;这次应该比较清楚了&#xff0c;这里再总结一下。 目录 0 前言 1 普通指针&#xff1a; 2 指针的指针&#xff1a; 3 普通指针参数&#xff1a; 4 指针的指针参数&#xff1a; 5 函数指针&a…

[Kettle] 认识Kettle

1.初识Kettle Kettle是ETL数据整合与处理工具&#xff0c;翻译成中文是"水壶"的意思&#xff0c;可理解为希望把各种数据放到一个壶里&#xff0c;像水一样以一种指定的格式流出&#xff0c;表达数据流的含义 ETL(Extract - Transform - Load)是将数据从数据来源端…

centos7部署rancher2.5

一、 什么是 Rancher Rancher 是为使用容器的公司打造的容器管理平台。Rancher 简化了使用 Kubernetes 的流程&#xff0c;开发者可以随处运行 Kubernetes&#xff08;Run Kubernetes Everywhere&#xff09;&#xff0c;满足 IT 需求规范&#xff0c;赋能 DevOps 团队。 Ran…

单纯形法与对偶单纯形法的通俗理解

cigma<0,a>0 min cigma/(a) 决定出基变量 1对偶单纯形法 意思是看c就是所有货物的价值&#xff0c;去看一眼这些货物单价组合售卖的价值&#xff0c;这些价值肯定要都大于0&#xff0c;而且&#xff0c;组成这个c的系数也应该是都是正的&#xff0c; c最小证明对min&a…

港科夜闻|香港科大-越秀集团百万奖金国际创业大赛2022年度前8强20强项目评审结果公布...

关注并星标每周阅读港科夜闻建立新视野 开启新思维1、“香港科大-越秀集团”百万奖金国际创业大赛2022年度前8强&20强项目评审结果公布。2022年赛事中的各赛区前三名项目&#xff0c;共计23个项目自动入围年度总决赛&#xff0c;本轮评审在这23个项目中&#xff0c;评选出了…

Hudi学习02 -- Hudi核心概念

文章目录基本概念时间轴&#xff08;Timeline&#xff09;文件布局&#xff08;File Layout&#xff09;索引&#xff08;Index&#xff09;索引原理索引类型索引的选择策略表类型&#xff08;Table Types&#xff09;查询类型&#xff08;Query Types&#xff09;写操作&#…

Qt第五十二章:Qt Design Studio使用技巧。

一、运行项目和Debugging项目【快捷键&#xff1a;CtrR】 二、 预览单Qml文件 三、添加资源文件 &#xff08;使用资源&#xff1a;将资源拖动到Editor中的矩形中即可&#xff09; 四、多状态【正常状态、按下状态、划过状态、已点击状态...】 注意&#xff1a;多状态看起来像…

java短网址平台

git地址 Reduce: 短网址平台&#xff0c;Coody Framework首秀&#xff0c;自写IOC、MVC、ORM、TASK、JSON、DB连接池、服务器。百毫秒启动&#xff0c;全项目仅2.1M&#xff08;低配服可运行&#xff09; reduce短网址平台 测试站地址&#xff1a;http://dev.icoody.cn/ 技…

DOM事件

鼠标事件监听 键盘事件监听 表单事件监听 常见的页面事件监听 事件传播 事件传播顺序&#xff1a;从内到外&#xff08;冒泡阶段&#xff09;onxxx这样写法只能监听冒泡阶段 addEventListener()方法第三个参数如果为true监听捕获阶段&#xff0c;false监听冒泡阶段(默认) 最…

C语言及算法设计课程实验二:数据类型、运算符和简单的输入输出

C语言及算法设计课程实验二&#xff1a;数据类型、运算符和简单的输入输出一、实验目的二、实验内容2.1、输入并运行教材第3章第4题给出的程序&#xff1a;2.2、输入第3章第5题的程序2.3、输入以下程序&#xff1a;2.4、程序设计题&#xff1a;假如我国国民生产总值的年增长率为…

遗传算法解决函数优化问题

遗传算法解决函数优化问题 作者: Cukor丘克环境: MatlabR2020a vscode 为什么要学习遗传算法 为什么要学习遗传算法&#xff0c;或者说遗传算法有什么厉害的地方。例如求解以下函数优化问题&#xff1a;minf(x1,x2)x12x1225∗(sin2x1sin2x2),−10≤x1≤10,−10≤x2≤10.min…

【ACWING】【图的深度优先遍历】【846树的重心】

给定一颗树&#xff0c;树中包含 n个结点&#xff08;编号 1∼n&#xff09;和 n−1条无向边。 请你找到树的重心&#xff0c;并输出将重心删除后&#xff0c;剩余各个连通块中点数的最大值。 重心定义&#xff1a;重心是指树中的一个结点&#xff0c;如果将这个点删除后&…

js复习之正则表达式正向肯定与否定预查询

正则表达式(regular expression)描述了一种字符串匹配的模式&#xff08;pattern&#xff09;&#xff0c;可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。 正则表达式_百度百科 除开常用基本匹配模式&#xff0c;偶尔也会用到…

回顾艰难且不失温度的 2022 年 | 文中附「双12免单王」获奖名单

今天是 2022 年最后一天&#xff0c;回忆往昔&#xff0c;这一年经历了太多的不可思议和无可奈何之事。在年末的短短几周&#xff0c;寒气长驱直下以惊人的速度传给每一个人。我们真诚地希望大家都可以平安渡过这一难关。 即使步步难行&#xff0c;亦要踱步前行&#xff01;无…

力扣刷题记录——190. 颠倒二进制位、191. 位1的个数、202. 快乐数

本专栏主要记录力扣的刷题记录&#xff0c;备战蓝桥杯&#xff0c;供复盘和优化算法使用&#xff0c;也希望给大家带来帮助&#xff0c;博主是算法小白&#xff0c;希望各位大佬不要见笑&#xff0c;今天要分享的是——《190. 颠倒二进制位、191. 位1的个数、202. 快乐数》。 目…

Gradle学习笔记之依赖

文章目录依赖的方式直接依赖项目依赖本地jar包依赖依赖的类型api和implementation的区别依赖冲突及解决方案移除某个依赖不允许依赖传递强制使用某个版本依赖冲突时立刻构建失败依赖的方式 Gradle中的依赖方式有直接依赖、项目依赖和本地jar包依赖三种&#xff1a; dependenc…

【一起从0开始学习人工智能0x02】字典特征抽取、文本特征抽取、中文文本特征抽取

注&#xff1a;最后有面试挑战&#xff0c;看看自己掌握了吗 文章目录什么是特征工程&#xff1f;用什么做&#xff1f;1.特征提取特征值化&#xff1a;特征提取API字典特征提取---向量化---类别--》one-hot编码哑变量one-hot-------直接1234会产生歧义&#xff0c;不公平应用场…