首页
学习
活动
专区
圈层
工具
发布
技术百科首页 >Svelte >Runes 中的 state、state、derived、$effect 分别有什么作用?

Runes 中的 state、state、derived、$effect 分别有什么作用?

词条归属:Svelte

Runes 是 Svelte 5 引入的一套以美元符号($)开头的编译器指令,用于显式声明响应式行为。它们看起来像函数调用,但不需要导入、不能作为普通值赋值,且只在特定的语法位置生效,取代了 Svelte 4 中隐式的响应式写法。

1. $state 声明响应式状态

$state 用于声明响应式变量。基本类型的读写会被自动追踪;对象和数组会被包装为深响应式代理,对其属性的增删改都能触发更新,避免了 Svelte 4 中必须整体重新赋值才能触发响应的限制。

2. $derived 声明派生值

derived用于声明依赖其他状态计算得出的派生值,当依赖发生变化时自动重算。派生表达式应保持纯净,不应在其中写入副作用。对于多语句的复杂派生,可使用derived用于声明依赖其他状态计算得出的派生值,当依赖发生变化时自动重算。派生表达式应保持纯净,不应在其中写入副作用。对于多语句的复杂派生,可使用derived.by 形式。

3. $effect 声明副作用

effect用于声明副作用逻辑,例如在依赖变化后同步DOM之外的资源、发起网络请求等。它在依赖变化且DOM更新后执行,可返回清理函数;此外还有effect用于声明副作用逻辑,例如在依赖变化后同步DOM之外的资源、发起网络请求等。它在依赖变化且DOM更新后执行,可返回清理函数;此外还有effect.pre(在 DOM 更新前执行)和 $effect.root(在挂载时执行一次)等变体。

相关文章
Widget中的state到底是什么
在上一篇文章Widget,构建Flutter界面的基石中,我们深入理解了Widget是Flutter构建界面的基石,,也认识了Widget、Element、RenderObject是如何互相配合,实现图形渲染工作的。Flutter在底层做了大量的渲染优化工作,使得我们只需要通过组合、嵌套不同类型的Widget,就可以构建出任意功能、任意复杂度的界面。
拉维
2019-08-12
4.1K0
JavaScript 框架生态系统的最新动态!
JavaScript 的生态系统一直以它的变化速度飞快而著称。在今天快速变化的 JavaScript 框架生态中,稍不留神你就可能错过许多新东西。每当你觉得自己对最新的工具和技术驾轻就熟时,新的创新浪潮又会带来一切改变。
ConardLi
2024-06-06
2.9K0
Svelte 5 迁移指南
从 Svelte 诞生之初,就备受开发者的喜爱,根据统计,从 2019 年到 2024 年,连续 6 年一直是开发者最感兴趣的前端框架 No.1:
论文及时雨
2025-08-23
7660
Hive中的分桶表是什么?请解释其作用和使用场景。
Hive中的分桶表是一种将数据分割为多个桶(bucket)的表格结构。每个桶都包含了表中的一部分数据,并且桶的数量是固定的。分桶表可以提高查询性能,尤其是在对大型数据集进行聚合操作时。
GeekLiHua
2025-01-21
5300
『Dva』异步处理
经过上一篇『Dva』管理数据,文章的介绍,了解了如果通过 Dva 来管理我们的数据,了解了一下 Dva 当中的 Model,了解了下如何使用 Model 来保存我们的数据,了解了下如何使用 Model 来保存 Reducer。
程序员NEO
2024-11-30
7930
点击加载更多
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
领券