码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • uniapp搜索框防抖、自动获取焦点


    1.搜索框基本UI结构

    1. class="search-box">
    2. <uni-search-bar @input="input" :radius="100" cancelButton="none">uni-search-bar>
    1. .search-box {
    2. //实现吸顶效果
    3. position: sticky;
    4. top: 0;
    5. //防止被后面的图片覆盖
    6. z-index: 999;
    7. }
    1. //input事件处理函数
    2. methods: {
    3. input(e) {
    4. // e.value 是最新的搜索内容
    5. console.log(e.value)
    6. }
    7. }

    uni-search-bar官方教学:uni-app官网 

    2.自动获取焦点

    目的:实现跳转到本页面后光标立即定位到搜索框中

    修改 components -> uni-search-bar -> uni-search-bar.vue 组件,把 data 数据中的 show 和 showSync 的值,从默认的 false 改为 true 即可:

    3.防抖处理

    问题:因为搜索框input函数只要输入便会记录输入值,但是很多情况下输入过程中的值并不是我们想要的,所以不需要读取

    方案:设置延时器,规定时间内连续输入则input函数不会读取

    在 data 中定义防抖的延时器 timerId 如下:

    1. data() {
    2. return {
    3. // 延时器的 timerId
    4. timer: null,
    5. // 搜索关键词
    6. kw: ''
    7. }
    8. }

    修改 input 事件处理函数如下:

    1. input(e) {
    2. // 清除 timer 对应的延时器
    3. clearTimeout(this.timer)
    4. // 重新启动一个延时器,并把 timerId 赋值给 this.timer
    5. this.timer = setTimeout(() => {
    6. // 如果 500 毫秒内,没有触发新的输入事件,则为搜索关键词赋值
    7. this.kw = e.value
    8. console.log(this.kw)
    9. }, 500)
    10. }

    注意:我们页面中使用了定时器,在离开这个页面的时候一定要记得清除,避免出现bug。

    扩展:settimeout和setinterval之间有什么区别?

    区别:setTimeout只运行一次,也就是说设定的时间到后就触发运行指定代码,运行完后即结束;而etinterval是一直循环运行下去,即每到设定时间间隔就触发指定代码,要想停止,需要使用clearInterval()函数。

    定时器官方介绍:setTimeout(callback, delay, rest) | uni-app官网

  • 相关阅读:
    替代for循环,让Python代码更pythonic
    Java中的数组、Set、List、Map类型的互相转换总结
    MySQL系列-高级-性能分析工具-EXPLAIN
    Android EditText输入限制及字符编码
    渗透创客精神文化转化的创客教育
    盲盒商城怎样抓住用户的心
    作为产品经理,你是如何分析和管理你的产品需求的?
    k8s牛客面经篇
    【MyBatis】初识这一优秀的持久层框架
    SpringAop面向切面编程使用详解
  • 原文地址:https://blog.csdn.net/m0_63748493/article/details/126893357
  • 最新文章
  • 让 Agent 搭建行情中心:DolphinX 数据接入自动化实践
    HotKey Platform — 热Key检测平台
    Python 常用统计图表实战指南
    重新认识结构体:为什么 STM32 库函数喜欢接收一大包参数
    中医竟是AI Harness祖师爷?
    Agent 记忆系统难在取舍
    CodeReview的本质分析
    PHP Trait 为何可能成为语言的关键特性
    如何自定义一个MyBatis插件
    【译】借助 Visual Studio 订阅权益 Cloud Academy 更快掌握 Azure 技能
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号