Javascript 只有在我选择了范围之后,才能在范围滑块观察器内执行代码,而不是在滑动滑块时一直执行?

Javascript 只有在我选择了范围之后,才能在范围滑块观察器内执行代码,而不是在滑动滑块时一直执行?,javascript,vue.js,vuejs2,Javascript,Vue.js,Vuejs2,我做了一个函数,它监视range属性的变化,并执行一个新的GET请求,以便获取新范围内的所有场景。不幸的是,我一直收到太多来自API的错误请求。我假设这是因为函数会在每次范围属性更改时执行,这在我滑动滑块时经常发生 这就是为什么我想知道,在滑动完范围滑块的滑动条后,我能做些什么,只执行一次函数 HTML 倾听更改事件以实际执行请求 <input @change="doRequest" v-model="range" class='range-input' type="range" min=

我做了一个函数,它监视range属性的变化,并执行一个新的GET请求,以便获取新范围内的所有场景。不幸的是,我一直收到太多来自API的错误请求。我假设这是因为函数会在每次范围属性更改时执行,这在我滑动滑块时经常发生

这就是为什么我想知道,在滑动完范围滑块的滑动条后,我能做些什么,只执行一次函数

HTML


倾听更改事件以实际执行请求

<input @change="doRequest" v-model="range" class='range-input' type="range" min="1000" max="25000" value="10000">

顺便说一下,如果已经使用v-model将其绑定到属性,那么应该删除html中的value属性。如果需要默认值,请将js中的属性设置为该值,但不要自己与html元素的值交互。避免创建doRequest方法。
data(){
    return {
        sights: [],
        username: this.$route.params.username,
        city: this.$route.params.city,
        lat: this.$route.params.lat,
        lng: this.$route.params.lng,
        type: 'museum',
        range: 5000,
    }
},
watch: {
    range: function(){
        axios.get('/getSights/' + this.lat + '/' + this.lng + '/' + this.type + '/' + this.range)
        .then(response => {
            this.sights = response.data.result.results
            this.nextPageToken = response.data.result.next_page_token
            console.log(response)
        }).catch((error) => console.log(error));
    }
}
<input @change="doRequest" v-model="range" class='range-input' type="range" min="1000" max="25000" value="10000">