指尖上的记忆指尖上的记忆
首页
  • 基础
  • Laravel框架
  • Symfony框架
  • 基础
  • Gin框架
  • 基础
  • Spring框架
  • 命令
  • Nginx
  • Ai
  • Deploy
  • Docker
  • K8s
  • Micro
  • RabbitMQ
  • Mysql
  • PostgreSsql
  • Redis
  • MongoDb
  • Html
  • Js
  • 前端
  • 后端
  • Git
  • 知识扫盲
  • Golang
🌟 gitHub
首页
  • 基础
  • Laravel框架
  • Symfony框架
  • 基础
  • Gin框架
  • 基础
  • Spring框架
  • 命令
  • Nginx
  • Ai
  • Deploy
  • Docker
  • K8s
  • Micro
  • RabbitMQ
  • Mysql
  • PostgreSsql
  • Redis
  • MongoDb
  • Html
  • Js
  • 前端
  • 后端
  • Git
  • 知识扫盲
  • Golang
🌟 gitHub
lodash下的clamp使用
watch(
  isActive,
  (active) => {
    const el = textareaRef.value;
    if (!el) return;
    el.style.height = active ? "" : `${clamp(24, el.scrollHeight, 381)}px`;
  },
  { flush: "post" },
);
代码分析
Lodash 的 clamp 函数定义如下:

clamp(number, lower, upper)

它的作用是将 number 限制在 lower 和 upper 之间:
如果 number < lower,返回 lower
如果 number > upper,返回 upper
否则返回 number 本身

{ flush: "post" }:
表示在 DOM 更新之后 再触发 watch 的回调函数。
用于确保 DOM 变更(例如 v-if, v-show 的切换)已经完成,从而能正确读取 el.scrollHeight。

这个 watch 的主要作用是:
动态调整 <textarea> 的高度,根据是否“激活”来控制。
如果 isActive 为 false,则将 <textarea> 的高度设为其内容高度(受限于 24~381px)。
如果 isActive 为 true,则清除固定高度,让其恢复自动调整(例如用于用户输入时自动扩展)。