请老师解答下面代码中的问题
来源:2-6 状态动画
weixin_慕村1291783
2020-12-26 20:37:17
# 具体遇到的问题
# 报错信息的截图
# 相关课程内容截图
# 尝试过的解决思路和结果
# 粘贴全部相关代码,切记添加代码注释(请勿截图)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script src="https://unpkg.com/vue@next"></script>
</head>
<body>
<div id="root"></div>
</body>
<script>
const app = Vue.createApp({
data() {
return {
num: 1,
anum: 1
}
},
methods: {
handleAddItemClick() {
const timer = setInterval(() => {
this.anum += 1
if (this.anum >= 10) {
clearInterval(timer)
}
}, 100)
// 为什么把判断写在定时器外面就不会停呢?
// if (this.anum >= 10) {
// clearInterval(timer)
// }
}
},
template: `
<div>{{anum}}</div>
<button @click="handleAddItemClick">增加</button>
`
})
const vm = app.mount('#root')
</script>
</html>
1回答
好帮手慕星星
2020-12-27
同学你好,setInterval定时器是永久性的,也就是会在间隔时间内不停的执行定时器中代码。如果将判断放在定时器外面,只会执行一次,所以不能实时的判断this.anum的值,当this.anum值满足if判断条件的时候,也就不能停止定时器了。
祝学习愉快!
相似问题