vue中使用JSON.parse

博客主要讲述在vue组件有倒计时定时器的前提下,使用JSON.parse的情况。介绍了两种在子组件中使用JSON.parse的方法,方法一会不停触发onChange函数,方法二则不会。初步猜测是JSON.parse返回对象指针不同导致,取消定时器方法一也不触发。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

vue中使用JSON.parse

前提条件是:该组件渲染界面有一个倒计时的定时器,定时器代码如下:

  <span style="margin-left:30px;color:#4990ee;" v-if="this.remainTime!=-1">倒计时:<span id="time1" style="color:red;font-size:24px;"  v-if="this.remainTime!=-1">{{lastTime}}</span></span>

this.interval = setInterval(function() {
sec–;
this.lastTime = this.secToTime(sec);
}.bind(this), 1000);

所渲染的子组件
方法一:

<Generateorm
v-if=“data.taskData”
:data=“JSON.parse(data.tableContent)”
:value=“JSON.parse(data.taskData)”
@on-change=‘onChange’>

方法二:

<Generateorm
v-if=“data.taskData”
:data=“JSON.parse(data.tableContent)”
:value=“data.taskData”
@on-change=‘onChange’>

on-change这个方法是当:value绑定的值改变是,子组件Generateorm就会调取

this.$emit(‘on-change’, field, value, this.models,this.index)

方法一的写法会不停地触发onChange()这个函数,但是采用方法二在获取变量值后就将其转为对象,就不会不停的触发此函数。如果取消定时器,则方法一也不会触发,有哪位大神可以解答一下,令人头秃。

初步猜测是因为JSON.parse(data.taskData)返回对象不同所以会触发,由于对象是指针指向的,当指针不同时,对象也就不同。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值