请老师解答下面代码中的问题

来源: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 {

                num1,

                anum1

            }

        },

        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判断条件的时候,也就不能停止定时器了。

祝学习愉快!

0

0 学习 · 15276 问题

查看课程