Svelte 最新中文文档翻译(10)—— use: 与 Actions

news/2025/2/24 12:22:28/文章来源:https://www.cnblogs.com/yayujs/p/18717959

前言

Svelte,一个非常“有趣”、用起来“很爽”的前端框架。从 Svelte 诞生之初,就备受开发者的喜爱,根据统计,从 2019 年到 2024 年,连续 6 年一直是开发者最感兴趣的前端框架 No.1

image.png

Svelte 以其独特的编译时优化机制著称,具有轻量级高性能易上手等特性,非常适合构建轻量级 Web 项目,也是我做个人项目的首选技术栈。

目前 Svelte 基于 Svelte 5 发布了最新的官方文档,但却缺少对应的中文文档。为了帮助大家学习 Svelte,为爱发电翻译了官方文档。

我同时搭建了 Svelte 最新的中文文档站点:https://svelte.yayujs.com ,如果需要辅助学习,也可以入手我的小册《Svelte 开发指南》,语法篇、实战篇、原理篇三大篇章带你系统掌握 Svelte!

虽说是翻译,但个人并不喜欢严格遵守原文,为了保证中文阅读流畅,会删减部分语句,对难懂的部分也会另做补充解释,希望能给大家带来一个好的中文学习体验。

欢迎围观我的“朋友圈”、加入“低调务实优秀中国好青年”前端社群,分享技术,带你成长。

use:

Actions(动作)是在元素挂载时调用的函数。它们通过 use: 指令添加,通常会使用 $effect 以便在元素卸载时重置任何状态:

<!--- file: App.svelte --->
<script>/** @type {import('svelte/action').Action} */function myaction(node) {// 节点已被挂载到 DOM 中$effect(() => {// 这里进行设置return () => {// 这里进行清理};});}
</script><div use:myaction>...</div>

action 可以带参数调用:

<!--- file: App.svelte --->
<script>/** @type {import('svelte/action').Action} */function myaction(node, +++data+++) {// ...}
</script><div use:myaction={+++data+++}>...</div>

action 只会调用一次(但在服务端渲染期间不会调用)—— 即使参数发生变化也不会再次运行。

[!LEGACY]
$effect 符文出现之前,action 可以返回一个带有 updatedestroy 方法的对象,如果参数发生变化,update 将被调用并使用最新的参数值。现在推荐使用 effects。

类型定义

Action 接口接收三个可选的类型参数 —— 节点类型(可以是 Element,如果 action 适用于所有元素)、参数,以及由 action 创建的任何自定义事件处理程序:

<!--- file: App.svelte --->
<script>import { on } from 'svelte/events';/*** @type {import('svelte/action').Action<* 	HTMLDivElement,* 	null,* 	{* 	   onswiperight: (e: CustomEvent) => void;* 	   onswipeleft: (e: CustomEvent) => void;* 		// ...* }>}*/function gestures(node) {$effect(() => {// ...node.dispatchEvent(new CustomEvent('swipeleft'));// ...node.dispatchEvent(new CustomEvent('swiperight'));});}
</script><divuse:gesturesonswipeleft={next}onswiperight={prev}
>...</div>

Svelte 中文文档

本篇已收录在掘金专栏 《Svelte 中文文档》,该系列预计 40 篇。

系统学习 Svelte,欢迎入手小册《Svelte 开发指南》。语法篇、实战篇、原理篇三大篇章带你系统掌握 Svelte!

此外我还写过 JavaScript 系列、TypeScript 系列、React 系列、Next.js 系列、冴羽答读者问等 14 个系列文章, 全系列文章目录:https://github.com/mqyqingfeng/Blog

通过文字建立交流本身就是一种缘分,欢迎围观我的“朋友圈”、加入“低调务实优秀中国好青年”前端社群,分享技术,带你成长。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/884670.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何在啥也不懂的情况下将你的公众号接入DeepSeek或其它大模型

本文详细介绍了零基础用户如何借助AI工具将微信公众号接入DeepSeek等大模型实现智能回复的全流程。首先通过AI问答确定开源项目chatgpt-on-wechat,利用豆包AI分析项目结构后选择Docker部署方案。重点讲解了在Ubuntu系统配置国内镜像安装Docker、编写含中文注释的docker-compos…

rust学习十八.1、RUST的OOP和简单示例

很可惜,出于一些理由,rust抛弃了OOP的核心特性之一:继承 其中一个理由应该是至关重要的,但是解释的比较模糊:继承增加了复杂性的确,继承会让rust编译器变得更加复杂。rust编译器虽然足够体贴,但是它偏慢的编译速度也是很多人所吐槽的。 在我对rust编译了解更多之前,我对…

【后端】简化部署设计方案——内层设计方案

根据《简化部署设计方案V2》的内容,内层部署需要提供的 .sh 脚本应覆盖部署流程的各个阶段,确保组件能够顺利安装、配置、启动、检查状态,并支持升级和卸载。 一、 部署某组件所需的内层结构 左侧是约定的内层结构,右侧的其他部署的内容物,按需存放即可。1.1 scripts目录:…

H3C CX8028 GPFS并行文件系统全闪存储配置案例

H3C华三CX8028使用IBM的GPFS商业授权的一款全闪存储设备。本案中,客户机服务器与存储服务器均搭配双口200G网卡 ,配合200G的ROCE网络搭建集群。 GPRS文件系统中,存储集群不光需要把存储服务器组织在一起,客户机也需要在集群中声明身份,参与到集群之中,这并不像传统的集中…

【kali】在Kali Linux中安装Navicat17

Navicat 是笔者最喜欢的一款专业的数据库管理工具,不仅支持多种数据库类型,而且它提供了直观的用户界面和丰富的功能,帮助用户轻松管理和操作数据库,提高工作效率。 通过,Navicat我们是在Windows环境中部署的。本文以KALI为例,讲解如何在Linux环境中部署。 首先,我们从官…

URL 生成网站截图 API 数据接口

URL 生成网站截图 API 数据接口 网站工具 / 截图 高效生成网页截图 生成网页截图 / 图片输出。1. 产品功能支持全页截图和视窗截图; 支持自定义截图尺寸; 兼容移动设备截图; 支持暗黑模式截图; 固定参数请求,可以得到最新的站点截图; 快速高效的截图生成; 全接口支持 HT…

OCR识别表格中的参数及参数值

一、需求 识别固定表格中的文字,输出表格中的参数字典 二、整体思路找到一张含有表格的图片,利用mac自带的预览工具分析出图片每个单元格的对角线坐标, 使用程序根据图片文件和对角线坐标数组,分割图片为很多个小图片, 采用tesseract库识别单个单元格中的文字,并将识别出…

H800 Nvlink 基础环境配置(Ubuntu20.04 )

H100/800 SXM的8卡服务器在配置多机互联环境时,除了要安装Nvidia的GPU驱动,还需要安装FabricManager。 Nvidia 提供了在线安装和离线安装两种方式。Z项目H800 NVL 基础环境配置(Ubuntu20.04 ) 操作系统基础安装 配置源 本操作在Ubuntu 20.04下完成, 所有命令都以root身份执行…

c_note

c笔记一、变量 1、变量的声明 ​ 变量的声明是给编译器看的,告诉编译器变量的类型以及名字等相关的信息。 格式:数据类型 变量名; 变量的声明显然是一个编译时概念,所以它和程序的运行没有太大的关系。 一个变量具有声明,并不意味着该变量会在运行时期分配内存空间。 2、…

Drasi Sources SDK

什么是Drasi数据源(Source)?Source提供了与系统的连接,Drasi 可以将这些系统视为变化源。source 在 Drasi 中执行三个重要功能:处理源系统生成的更改日志/源,并将这些更改推送到使用该源作为输入的每个连续查询。 将源更改数据转换为一致的属性图数据模型,以便订阅的 Co…

【每日一题】20250216

人生就是这样,不经历鲜血淋漓的疼痛,就不会明白那些曾经让我们厌烦的说教其实是受用一生的信条。【每日一题】(多选)如图所示,在竖直半面内有一半径为 \(R\) 的圆弧轨道.半径 \(OA\) 木平、\(OB\) 竖直,一个质量为 \(m\) 的小球自 \(A\) 的正上方 \(P\) 点由静止开始自由…

数据团队必读:智能数据分析文档(DataV Note)五种高效工作模式

数据项目,无论是数据分析、可视化,还是数据科学和机器学习相关的项目,通常都非常复杂,涉及多个组成部分,比如代码、数据、运行环境、SQL脚本以及分析报告等;与此同时,随着AI时代的到来,数据科学领域正经历重大变革。这对于数据科学团队来说,如何保持高效地工作模式一直…