Vue.js中debounce怎么用-创新互联
这篇文章给大家分享的是有关Vue.js中debounce怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
网站设计制作过程拒绝使用模板建站;使用PHP+MYSQL原生开发可交付网站源代码;符合网站优化排名的后台管理系统;成都做网站、网站建设收费合理;免费进行网站备案等企业网站建设一条龙服务.我们是一家持续稳定运营了10年的成都创新互联公司网站建设公司。debounce简介
debounce是lodash工具库中的一个非常好用的函数。在实现搜索框对输入进行动态查询的时候,我们需要防止前端频繁的发送查询请求给后端,这个时候就需要用到debounce,它可以设置一个时间间隔,比如300ms,忽略300毫秒内的输入变化。debounce的详细介绍可以参考 这篇 文章。
debounce的高级用法
博主的页面中有3个搜索框,每个搜索框都需要动态响应用户的输入到后台去查询匹配的文章,如下图:
在Vue.js中如何实现多搜索框的debounce绑定,下面博主就带大家一起来看一下:
1. 监听输入变量
上图,可以看到我有3个输入框,每个输入框都需要设置一个变量来保存用户的输入:
data () { return { // 可用的文章列表 columnItems: [], // 是否正在加载 isLoading: [false, false, false], // 选择框搜索输入的值 searchColumn1: '', searchColumn2: '', searchColumn3: '' } },
接下来,我们把输入变量绑定到输入框上面。博主这里使用的是vuetify的combobox,如果使用html原生的input框或者其他框架的input元素,此处请稍作修改:
... ... ...
然后,我还需要监听这几个变量,如果发生改变则调用ajax进行后台查询:
watch: { searchColumn1 (val) { this.getColumns(val, 0) }, searchColumn2 (val) { this.getColumns(val, 1) }, searchColumn3 (val) { this.getColumns(val, 2) } }, ... methods: { getColumns: function (searchValue, index) { // Items have already been requested if (this.isLoading[index]) return this.isLoading[index] = true let vm = this let options = { page: 1 } if (searchValue) { options.title = searchValue.trim() } else { vm.columnItems = [] vm.isLoading[index] = false return } // console.log(options) vm.$store.dispatch('getAllColumns', options).then(function (columns) { if (columns && columns.length) { vm.columnItems = columns } vm.isLoading[index] = false }) } }
2. 添加debounce绑定
到目前为止,我们都还没有添加debounce,上面的逻辑也完全走的通,但是运行后你会发现输入操作运行的不流畅,如果打开dev-tools查看后台调用,你会发现用户输入后出发了一长串的ajax调用。因此我们引入debounce。此处,我们只需把含有ajax调用的函数提交给debounce,告诉它对getColumns()函数进行防抖操作。而在何处调用debounce则是非常有讲究的,错误的引入位置会使得debounce不起作用。请记住,debounce需要在created()钩子中引入。
import _ from 'lodash' ... created: function () { this.getColumns = _.debounce(this.getColumns, 500) },
感谢各位的阅读!关于“Vue.js中debounce怎么用”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
标题名称:Vue.js中debounce怎么用-创新互联
链接地址:http://azwzsj.com/article/isjoe.html