位置: IT常识 - 正文

Vue中 数据改变但未渲染的问题,页面中并没有自动更新,但是在控制台可以打印出来,常见解决方法(vue更改数据)

编辑:rootadmin
Vue中 数据改变但未渲染的问题,页面中并没有自动更新,但是在控制台可以打印出来,常见解决方法

推荐整理分享Vue中 数据改变但未渲染的问题,页面中并没有自动更新,但是在控制台可以打印出来,常见解决方法(vue更改数据),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:vuex改变数据,vuex改变数据,vue怎样改变data里面的数据,vue怎样改变data里面的数据,vuex改变数据,vue怎样改变data里面的数据,vue修改数据后怎么让数据更新,vue中数据改变页面没有重新渲染,内容如对您有帮助,希望把文章链接给更多的朋友!

在Vue组件中,在mounted阶段调用了一个函数去请求异步数据,将返回结果赋给data里面的值却失败了,赋值完console.log()出来明明是有值的,但页面却没有更新过来。我还一直以为是nuxt生命周期的原因,但明显不是。因为这个问题只有在偶尔才会出现,并不是每次进入页面时渲染都会有这个问题。

1.简单粗暴的方式:重新加载整个页面(体验不友好,不推荐)

2.不妥的方式:使用 v-if

<template><my-component v-if="showComponent" /></template><script>export default {data() {return {showComponent: true,};},methods: {forceRerender() {// 从 DOM 中删除 my-component 组件this.showComponent = false;this.$nextTick(() => {// 在 DOM 中添加 my-component 组件this.showComponent = true;});}}};</script>

3.较好的方法:使用Vue的内置forceUpdate方法

迫使 Vue 实例重新渲染。注意它仅仅影响实例本身和插入插槽内容的子组件,而不是所有子组件。

// 全局import Vue from 'vue';Vue.forceUpdate();// 使用组件实例export default {methods: {methodThatForcesUpdate() {// ...this.$forceUpdate();// ...}}}Vue中 数据改变但未渲染的问题,页面中并没有自动更新,但是在控制台可以打印出来,常见解决方法(vue更改数据)

4.最好的方法:在组件上进行 key 更改

<template><component-render :key="componentKey" /></template>export default {data() {return {componentKey: 0,};},methods: {forceRerender() {this.componentKey += 1;}}}

5.使用Object.assign()

MDN:Object.assign() 方法用于将所有可枚举属性的值从一个或多个源对象复制到目标对象。它将返回目标对象。

方法:

克隆对象,Object.assign({}, target)

克隆数组,Object.assign([], target)针对上例,修改add方法。

this.queryParam = Object.assign({}, this.queryParam);6.使用Vue.set( target , key , value)

方法:

target: 要更改的数据源(可以是一个对象或者数组)key 要更改的具体数据。如果是数组元素更改,key表示索引;如果是对象,key表示键值value 重新赋的值

add() {this.$set(this.persons, 1, {key: 'newkey', name: '888'})console.log(this.persons)}7. ... 展开语法

对象数据obj,使用obj = {...obj}

对于数组arr,使用arr = [...arr]

add() {this.persons[1] = {key: 'newkey', name: '888'}this.persons = [...this.persons]console.log(this.persons)}
本文链接地址:https://www.jiuchutong.com/zhishi/297585.html 转载请保留说明!

上一篇:小满nestjs(第一章 介绍nestjs)(小满秒懂百科)

下一篇:关于服务连接器(Servlet)你了解多少?(服务器连接方式包括直接相连,间接连接)

  • 以旧换新销售商品
  • 公对公100万的生意扣税多少
  • 职工产假津贴怎么领取
  • 企业所得税的计算公式
  • 小规模公司的外汇业务
  • 个税的专项扣除包括哪些内容
  • 金蝶财务软件固定资产怎样计提折旧
  • 基建贷款贴息账户有哪些
  • 上市公司存货跌价准备怎么看
  • 股息红利税补缴什么意思
  • 税控发票包括哪些
  • 权益法下股权投资
  • 租赁的土地被征迁
  • 简易计税项目可以差额征税吗
  • 个人公寓出租给公司要交税吗?
  • 外地预缴工会其他经费计入什么科目?
  • 斐讯p.to路由器管理员密码
  • 企业收到贷款贴息会计分录
  • 您的磁盘
  • php获取长度
  • 更新出现网络异常
  • 冷车启动缺缸热车正常已解决
  • rsmsink.exe - rsmsink是什么进程 有何作用
  • PHP:disk_total_space()的用法_Filesystem函数
  • 个体户要交哪些税怎么交
  • 杜拉通河谷中的Nuestra Señora de la Hoz老修道院,西班牙塞哥维亚 (© Arco Images GmbH/Alamy)
  • 浏览器并发请求队列数量怎么设置
  • 房屋所在地的房子怎么查
  • php上传文件类型
  • php对象
  • 2023新版拳击航母
  • 浅谈当下火热的行业
  • 集团对子公司拨款的规定
  • 周转材料包装箱属于存货分类的
  • 给国外公司提供服务需要交哪些税
  • php访问mysql数据库函数
  • 支付国外佣金的税率多少
  • 电汇和票汇
  • 清算时存货是否要交税
  • 在建工程账务怎么会转到预收账款
  • 企业之间交换房地产要交土地增值税吗
  • 销售折扣可以开红字专票吗
  • 跨月普票发票怎么红冲
  • 小规模免税如何开票
  • 代扣代缴的增值税怎么做账
  • 业务招待费文件
  • 政府补贴业务如何发放
  • 教育协会颁发的证书有用吗?
  • 出让价格不得低于基准地价
  • 预付账款怎样做会计分录
  • 业务招待费纳税筹划
  • 飞机票退票费报销凭证图片
  • 商业医疗保险的缺点
  • 递延收益的会计核算
  • 收付转三种凭证的限制类型不同所以限制科目也不同
  • 银行结算账户的基本要求
  • 会计凭证会计账簿与账务处理程序
  • 怎样用eclipse敲代码
  • 在sql server中触发器不具有什么类型
  • 判断一个表是否存在
  • gridview自定义排序
  • ghost重装步骤
  • ubuntu做lvm
  • centos6 grub
  • 2021年win10累积更新
  • centos 安装方法
  • linuxzen
  • win7系统自动注销重启
  • shader教程
  • perl中的$_
  • 不通过肾门的结构都有什么
  • python文本怎么运行
  • jquery动态添加css样式
  • jquery获取文件大小
  • Python出现keyerror
  • python ftp storbinary
  • 农商银行股权分红如何计算
  • 进项税留抵怎么消化掉
  • 优化营商环境关于人才工作
  • 年终奖怎么报个税
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设