返回首页
🎨 前端 / Web
Svelte 5 Runes API 实战:从 React 思维转换
Svelte 5 用 Runes 重写响应式系统。本文对比 React 与 Svelte 的思维差异,给出实战迁移指南。
Svelte · Svelte 5 · Runes · 响应式 · 前端
📰
今日技术简讯
📰 技术简讯 · 2026-05-10
今日聚合 6 条热门技术内容。
🤖 AI / LLM
1. Anthropic Skills Marketplace 公开测试
- 链接:https://www.anthropic.com/skills-marketplace
- 来源:Anthropic
- 摘要:Skills 市场公测,开发者可发布 / 销售 Skills。
🎨 前端 / Web
2. Svelte 5 Runes API 实战
- 链接:https://svelte.dev/blog/runes-in-practice
- 来源:Svelte 官方
- 摘要:Svelte 5 Runes API 让响应式更直观,编译产物比 React 小 60%。
3. Vue 3.5 性能优化
- 链接:https://blog.vuejs.org/posts/vue-3-5
- 来源:Vue.js
- 摘要:Vue 3.5 响应式系统重写,大数组(10万+)渲染性能提升 5 倍。
⚙️ 后端 / 架构
4. Grafana 11 引入 AI 助手
- 链接:https://grafana.com/blog/11-0
- 来源:Grafana Labs
- 摘要:自然语言生成 PromQL,自动异常检测,可视化推荐。
🚀 独立开发 / OPC
5. Paddle 推出订阅分析仪表盘
- 链接:https://www.paddle.com/analytics
- 来源:Paddle
- 摘要:可视化订阅分析,MRR / Churn / LTV 一站式。
6. 《Indie Founder Playbook》第三版
- 链接:https://playbook.indiehackers.com
- 来源:Indie Hackers
- 摘要:100+ 章节,覆盖产品 / 营销 / 财务 / 心理。
数据来源:掘金 / InfoQ 中文 / HN / GitHub / Dev.to 采集时间:2026-05-10 09:00 (UTC+8)
📝
今日深度文
Svelte 5 Runes API 实战:从 React 思维转换
一句话结论:Svelte 5 的 Runes API 让响应式状态管理不再"魔法"。但从 React 迁移需要转换思维。
核心概念对比
React(useState)
import { useState } from 'react';
function Counter() {
const [count, setCount] = useState(0);
return (
<button onClick={() => setCount(count + 1)}>
{count}
</button>
);
}
Svelte 5(Runes)
<script>
let count = $state(0);
</script>
<button onclick={() => count++}>
{count}
</button>
5 个 Runes 核心
$state - 响应式状态
<script>
let count = $state(0);
let user = $state({ name: 'Alice', age: 30 });
// 派生状态
let doubled = $derived(count * 2);
</script>
<p>{count} × 2 = {doubled}</p>
$derived - 计算属性
<script>
let items = $state([1, 2, 3]);
let sum = $derived(items.reduce((s, n) => s + n, 0));
</script>
<p>Sum: {sum}</p>
$effect - 副作用
<script>
let count = $state(0);
$effect(() => {
console.log(`Count changed: ${count}`);
document.title = `Count: ${count}`;
});
</script>
$props - 组件 props
<script>
let { name, age = 18 } = $props();
</script>
<p>{name} is {age} years old</p>
$bindable - 双向绑定
<!-- Parent.svelte -->
<script>
let value = $bindable('');
</script>
<input bind:value={value} />
实战:从 React 迁移
Counter 组件
<!-- Before (React) -->
<script>
import { useState } from 'react';
export default function Counter({ initial = 0 }) {
const [count, setCount] = useState(initial);
return (
<div>
<button onClick={() => setCount(count - 1)}>-</button>
<span>{count}</span>
<button onClick={() => setCount(count + 1)}>+</button>
</div>
);
}
</script>
<!-- After (Svelte 5) -->
<script>
let { initial = 0 } = $props();
let count = $state(initial);
</script>
<div>
<button onclick={() => count--}>-</button>
<span>{count}</span>
<button onclick={() => count++}>+</button>
</div>
性能对比
测试:1 万个 div 渲染 + 点击更新
React (with Vite): 180ms
Svelte 5: 60ms
Bundle size:
React: 140KB
Svelte 5: 5KB(无运行时)
何时选 Svelte
- ✅ 小型项目(< 100 组件)
- ✅ 性能敏感
- ✅ 喜欢简洁语法
- ❌ 大型企业应用(团队 React 经验更广)
- ❌ 复杂状态管理(Pinia / Redux 生态更成熟)
参考
本文基于 Svelte 5.0 稳定版。
📚 同主题文章
🎨前端 / Web·
shadcn/ui + 设计系统 2026:现代 Web 产品的 UI 实战
shadcn/ui 是 2026 年最火的前端组件库 + 设计系统方案。本文从 0 到完整设计系统,含 5 个真实项目 + 主题定制 + 组件库扩展 + A11y。
shadcn/ui设计系统Tailwind v4
🎨前端 / Web·
React 19 实战:从 Server Components 到 Server Actions 完整指南
React 19 是前端框架的"分水岭"——Server Components 让前端从"CSR + API"转向"RSC + Actions"。本文从 0 到生产级 RSC 实战,含 4 个真实项目 + 性能对比。
ReactServer ComponentsServer Actions
🎨前端 / Web·
TypeScript 5.6 实战:从入门到生产级类型系统
TypeScript 5.6 引入 infer const / iterator helpers 等重磅特性。本文从基础到生产级类型系统实战,含 4 个真实项目 + 类型设计模式。
TypeScript类型系统前端