<template> <div> vue使用watch监听实现类似百度搜索功能 <div> <input type="text" placeholder="搜索" v-model.trim='keyword' /> </div> <div v-show="keyword"> <ul> <li v-for="item in cityList" :key="item.id" @click="handleCityClick(item.name)"> {{item}} </li> </ul> </div> </div> </template> <script> // 节流函数 const delay = (function () { let timer = 0; return function (callback, ms) { clearTimeout(timer); timer = setTimeout(callback.ms) } })() export default { name: "cinemaTwo", data () { return { keyword: '', cityList: [], timer: null, jsonData: [{ 'id': 1, 'name': '北京' }, { 'id': 2, 'name': '上海' }, { 'id': 3, 'name': '广州' }, { 'id': 4, 'name': '深圳' },] } }, watch: { keyword () { //函数节流 if (this.timer) { clearTimeout(this.timer) } //删除文字 清零 if (!this.keyword) { this.cityList = [] return } this.timer = setTimeout(() => { const result = [] this.jsonData.forEach(val => { if (val.name.indexOf(this.keyword) > -1) { result.push(val.name) } }); this.cityList = result console.log(this.cityList) }, 100) } }, methods: { }, } </script> <style lang="scss" scoped> </style>
vue使用watch监听实现即时搜索功能
免责声明:文章转载自《vue使用watch监听实现即时搜索功能》仅用于学习参考。如对内容有疑问,请及时联系本站处理。
上篇Id中带冒号,Jquery如何获取linux服务基础之nginx配置详解下篇
宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=