watch和setTimeout的一个应用技巧

使用watch和setTimeout可以监听输入框内容,输入内容停止后搜索。

效果如下所示,在停止输入后,就执行搜索方法。
在这里插入图片描述

<div id="app">
        <input v-model="content"/>
    </div>
    
    <script>
        var vm = new Vue({
            el:"#app",
            data:{
                content:"",
                timer:0
            },
            methods:{
                search(){
                    clearTimeout(this.timer);
                    this.timer = setTimeout(()=>{
                        if(this.content.trim()!==""){
                            console.log("输入内容为:"+this.content);
                        }
                    },2000);
                }
            },
            watch:{
                content(newVal,oldVal){
                    this.search();
                }
            }
        });
    </script>

使用watch监听输入的内容,当输入后就开始清除定时器,如果用户持续输入,那么之前设置的定时器就会被清除掉,重新设置新定时器。

当用户停止了2秒没有任何内容输入时,才会发送请求。

posted @ 2022-03-28 10:12  伟衙内  阅读(30)  评论(0编辑  收藏  举报