写点什么

Svelte 发布 Attachments,通过交互式和响应式特性增强 DOM

  • 2025-06-18
    北京
  • 本文字数:926 字

    阅读完需:约 3 分钟

大小:333.54K时长:01:53
Svelte 发布 Attachments,通过交互式和响应式特性增强 DOM

Svelte 的最新版本包含了一个名为Attachments(附件)的新功能,它通过交互式和响应式特性增强了 Web 应用程序的 DOM。Svelte Attachments 取代了 Svelte Actions(动作)。


就像 Svelte Actions 一样,开发人员使用附件来提供代码,以便在组件或 DOM 元素被挂载或卸载时运行。通常,提供的代码会为感兴趣的事件设置一个监听器,并在附件目标被卸载时移除该监听器。它还可以与需要目标 DOM 元素的第三方库一起使用。依赖响应值的附件将在这些值变化时重新运行。


以下是一个使用 GSAP 动画库中的 ScrambleTextPlugin 的示例


<script>  import { gsap } from 'gsap';  import { ScrambleTextPlugin } from 'gsap/ScrambleTextPlugin';  gsap.registerPlugin(ScrambleTextPlugin);  // ⚠️ 附件位于 `$effect` 函数内部  function scramble(text, options) {    return (element) => {      gsap.to(element, {        duration: 2,        scrambleText: text,        ...options      });    };  }  let text = $state('Svelte');</script><!-- 跟踪上下文 --><input type="text" bind:value={text} /><div {@attach scramble(text)}></div>
复制代码


当 DOM 首次被挂载时,文本 Svelte 将被打乱。此外,文本值的任何进一步变化也会导致文本被打乱。开发人员可以在 Svelte playground 中尝试这个示例。


这样 Svelte Attachments 就扩展了 Svelte Actions,后者没有为其参数提供类似的响应性。此外,S 附件可以设置在 Svelte 组件上,而 Svelte Actions 只能在 DOM 元素上声明。该版本提供了一种从 Actions 创建 Attachments 的机制,使开发人员可以复用现有的动作库


附件可以用来将行为与标记分离(就像其他 UI 框架中所做的那样,React 中的 hooks 就是一个例子)。已经作为 Actions 实现,现在可以从附件功能中受益的行为示例包括:剪贴板复制、点击板粘贴到元素、捕获元素外的点击、屏蔽用户输入、动画元素、指针拖动滚动行为、快捷键的设置、使元素可滑动、点击下载等。


开发人员被邀请在线阅读完整的文档,以获得该特性的详尽视图与详细的示例和解释。开发人员还可以查看相应的拉取请求,了解特性背后的动机和开发人员的评论。


原文链接:

Svelte Releases Attachments to Enhance DOM with Interactive and Reactive Features

2025-06-18 10:044722

评论

发布
暂无评论

云原生网关部署新范式丨 Higress 发布 1.1 版本,支持脱离 K8s 部署

阿里巴巴云原生

阿里云 云原生 Higress

统一观测丨使用 Prometheus 监控 Cassandra 数据库最佳实践

阿里巴巴云原生

阿里云 云原生 Prometheus

全国独家线下面授 | 上海大规模敏捷LeSS认证9月7-9日

ShineScrum

less 大规模敏捷 大规模敏捷LeSS CLP

接口测试|postman的介绍和安装

霍格沃兹测试开发学社

时光“摆渡者”,让回忆“闪现”眼前

脑极体

2023 云原生编程挑战赛火热报名中!导师解析 Serverless 冷启动赛题

阿里巴巴云原生

阿里云 Serverless 云原生

App自动化测试|原生app元素定位方法

霍格沃兹测试开发学社

App自动化测试|原生App元素定位方法(二)

霍格沃兹测试开发学社

2023-07-23:给你 n 个任务和 m 个工人 每个任务需要一定的力量值才能完成 需要的力量值保存在下标从 0 开始的整数数组 tasks 中 第 i 个任务需要 tasks[i] 的力量才能完

福大大架构师每日一题

福大大架构师每日一题

成都站丨阿里云 Serverless 技术实战营邀你来玩!

阿里巴巴云原生

阿里云 Serverless 云原生

在 Go 语言单元测试中如何解决 HTTP 网络依赖问题

江湖十年

单元测试 HTTP Go 语言

具身智能,是机器人的“冷饭热炒”吗?

脑极体

AI

如何评价一种框架技术的好坏?

canonical

低代码 架构设计 软件设计原则 ORM框架 开源框架

App自动化测试|Appium介绍

霍格沃兹测试开发学社

Python 测试 appium

App自动化测试|Appium工作原理及Desired Capbilities配置

霍格沃兹测试开发学社

Python 测试 appium

接口自动化测试|Requests库的安装与介绍

霍格沃兹测试开发学社

Dubbo Triple 协议重磅升级:支持通过 HTTP 连通 Web 与后端微服务

阿里巴巴云原生

阿里云 云原生 dubbo

Excel 高阶使用(含 ChatGPT)与数据可视化

Data 探险实验室

数据分析 Excel 数据可视化 可视化工具 ChatGPT

App自动化测试|Appium元素定位工具

霍格沃兹测试开发学社

Python 测试 appium

代码随想录 Day22 - 二叉树(八)

jjn0703

对比 5 个开源网关项目,这家 SaaS 企业如何统一网关架构

阿里巴巴云原生

阿里云 微服务 云原生 SaaS

代码随想录训练营Day24 - 回溯(一)

jjn0703

代码随想录Day25 - 回溯(二)

jjn0703

从互联网到云时代,Apache RocketMQ 是如何演进的?

阿里巴巴云原生

Apache 阿里云 RocketMQ 云原生

App自动化测试|Appium+Python自动化测试环境搭建(Windows)

霍格沃兹测试开发学社

Python 测试 Node appium

App自动化测试|Appium-Desktop界面介绍

霍格沃兹测试开发学社

Python 测试 appium

功能更新|Leangoo领歌敏捷工具支持SAFe大规模敏捷框架

顿顿顿

敏捷开发 敏捷项目管理 scrum敏捷工具 SAFe框架 SAFe大规模敏捷

vscode配置gitbash终端

芯动大师

docker简介与背景知识

timerring

Docker

Nautilus Chain 主网上线,Zepoch 持有者将获第三轮 POSE 空投

BlockChain先知

Svelte 发布 Attachments,通过交互式和响应式特性增强 DOM_大前端_Bruno Couriol_InfoQ精选文章