IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> 手写一个防抖功能,textarea文本框或者input框配合onKeyDown事件 react -> 正文阅读

[JavaScript知识库]手写一个防抖功能,textarea文本框或者input框配合onKeyDown事件 react

先说一下我遇到的得需求,是需要复制粘贴文本然后在textarea中进行换行得,每一行要判断字符不能超过60个。所以就需要在填写得时候把字符推到一个数组里,进行遍历,判断每一项是否超过60个,超过得话就不能输入了。这里用到了三个方法,分别是tostring();split();spliceAll();
join();

// spliceAll是所有的,如果不写all是单个得。
// split是变成数组。
// join是变成字符串   \r是在textarea中换行符。
// \n是显示时候得换行符。
  const handelChange = (e) => {
    e.stopPropagation();
    arr = e.target.value.replaceAll("\n", ",").split(',');
    arr.forEach((item, index) => {
      if (item.length >= 60) {
        arr[index] = item.substring(0, 59);
        text.current.resizableTextArea.textArea.value = arr.join("\r");
        return message.warning("每行不能超过60字符");
      };
    });
  }
<TextArea rows={6} bordered={false} id="textArea" ref={text} onBlur={handelBlur} onKeyDown={debounce(handelChange, 300)}/>
// 如果文本写不上就用ref
const text = useRef(null);
  useEffect(() => {
    text.current.resizableTextArea.textArea.value = str;  // str就是你需要给它赋得值
  })
// 防抖
// 直接复制粘贴然后自己写onKeyDown事件,上边那个是我写的,能用得话直接用就ok
  function debounce(fn,delay) {
    let timer = null;
    return function() {
      let context = this,args = arguments;
      if(timer) {
      clearTimeout(timer);
      timer = null;
    }
    timer = setTimeout(()=> {
      fn.apply(context,args)
    },delay)
    }
  };
  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-05-10 11:48:02  更:2022-05-10 11:50:02 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/30 3:50:51-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码