Svelte 的最新动态:2024 年 10 月
更强大的 each 块和无限循环的调用堆栈
十月来了!这意味着一件事…… Svelte 秋季峰会只有19天了!通过订阅官方新闻通讯或在 Discord 的直播中关注,随时了解 Svelte 峰会的最新动态。
感谢许多尝试 Svelte 5 候选版本的朋友,维护者们为即将发布的版本投入了大量精力来修复 bug 并提高性能。本月,我们将介绍一些最重要的改动,以及社区过去几周创建的许多应用、资源和库。
Svelte 的最新动态
你想将你的项目迁移到 Svelte 5 吗?想尝试迁移工具并给团队提供反馈吗?那么你应该试试 svelte-migrate 工具!只需要运行 npx svelte-migrate svelte-5
即可开始。如果遇到任何问题,请提交问题。
以下是一些其他的新功能……
- 旧组件现在可以通过
sync
选项异步手动实例化 (5.0.0-next.237, #12970) each
块在 SSR 模式下表现更好——移除了不必要的声明,并在遍历数组之前缓存数组长度 (5.0.0-next.242, #13060)- 如果检测到无限循环,在开发模式下会显示调用堆栈,并打印出最后十个 effect (5.0.0-next.246, #13231)
- 使用
@sveltejs/enhanced-img
的项目将看到更小的包大小,因为模块变量被内联到了模板中 (5.0.0-next.246, #13075) <button>
/<a>
元素缺少 aria-label 和内容时,现在会显示无障碍警告 (5.0.0-next.250, #13130)- 动画现在在计算变换时会考虑
zoom
(5.0.0-next.254, #13317) - 在 runes 模式下,
<svelte:self>
现已弃用。由于组件现在可以导入自身,因此不再需要 (5.0.0-next.256, #13333) - 几乎每个 Svelte 项目都在使用的 CLI 工具
svelte-check
现已大幅缩小 (repo, post)
想看看维护者为 Svelte 5 的生产准备都做了哪些工作?查看 CHANGELOG ,了解所有大小修复!
SvelteKit 和语言工具的最新动态
- SvelteKit 现在支持
load
函数中的类型化数组。这“不要过度使用,因为它采用的是体积比原始数据大 33% 的 base64 编码,但在必要时非常有用”(2.6.0, #12716) - 通过 Svelte 5 的
Component
接口类型注释的组件现在支持更好的智能提示 (extensions-109.0.1)
社区展示
通过 Svelte 构建的应用和网站
- svelte0.dev 通过文本提示使用
shadcn/ui
生成 Svelte UI - Mini Spreadsheet Component 是介绍 Svelte 响应式工作原理的绝佳工具
- Poof 是一款自毁笔记应用,提供可选的待办列表、电子邮件提醒以及按指定日期删除内容的功能
- kunft 是一个从 GitHub 中直接部署 Docker 容器和应用的云平台
- quickprompt 是一个浏览器扩展,可轻松保存和检索 ChatGPT 提示
- Dither 是一个受《奥伯拉·丁的回归》和 Meatspac.es 启发的低保真 GIF 聊天应用
- cobalt 可以帮助你从喜欢的网站保存任何内容:视频、音频、照片或 GIF
- YouTube Looper 是一个用于 YouTube 视频的自定义循环扩展
- LeetLink 是一个类似 Linktree 的工具,支持自定义主题
- WhatChord 是一个钢琴和弦查找工具
- AIUI 是一个面向 OAI-Compatible API 的 Web UI
学习资源
由 Svelte 贡献者和大使提供
- 为你的 SvelteKit 应用程序 Docker 化:实用指南 (作者:Stanislav Khromov)
- 本地化开发是未来的 Web 开发趋势吗?、升级到 Svelte 5 的隐藏优势——更小的包大小 和 SvelteKit 流式解释:何时以及如何使用 (视频作者:Stanislav Khromov)
- Svelte 5——关于新 API 的一切 (Simon Holthausen 在 CITYJS CONFERENCE 上的分享)
- 学习如何使用 Svelte 5 代码片段 (作者:Joy of Code)
- Svelte London - 2024 年 9 月 feat. maya 分享的”侧项目的乐趣 ✨”
本周 Svelte
- 第 74 集 — 更新日志、race 和 maybeStream、svelte:component 废弃
- 第 75 集 — 更新日志、$props、$state
- 第 76 集 — 更新日志、svelte-fsm、script module、尾部斜杠
- 第 77 集 — 更新日志、Context API、JSX 和单文件组件
- 第 78 集 — 更新日志、不确定的复选框、类和操作
Svienna 09/2024
- 如何在 SvelteKit 中使用 Zod (作者:Sasan Jaghori)
- Dates:一个浪漫故事与 JS 日期的交叉点 (作者:Domenik Reitzner)
- Svelte 5:你为什么要这么做 (作者:Simon Holthausen)
阅读推荐
- 升级到 Svelte 5 一个约 15,000 LOC 项目的感想 (作者:/u/practisingdeeplurk)
- 如何将未打包的 Svelte 包发布到 npm (作者:Matthew Davis)
- 将 YouTube Looper 迁移到 Svelte 5 (作者:Wilker Lucio)
- 打破 Svelte 的响应式声明限制 (作者:Zell Liew)
- 使用 Svelte 和 D3 进行数据可视化 (作者:DataVizSvelte)
视频推荐
- 2024 年 SvelteKit 数据获取机制解析 (作者:Ben Davis)
- 数据库,还是不数据库? 和 将 GitHub 问题作为 CMS? (作者:With Svelte)
- SvelteKit Superforms 崩溃课程 和 用 SvelteKit、Vendure、Houdinigql 和 Shadcn-svelte 构建全栈电商平台 (作者:Lawal Adebola)
库、工具和组件
- Tzezar’s Datagrid 是易用且易于自定义的数据网格组件
- SparklePost 是一款演示应用,采用现代高效的 Web 开发技术,实施了原生 iOS 和 Android 应用中常见的界面模式
- tipex 是基于 TipTap 构建的 SvelteKit 自定义富文本编辑器
本月的内容就是这些!如果我们遗漏了什么,可以在 Reddit 或 Discord 上告诉我们。
下次见 👋