createRenderEffect
编辑此页面渲染效果是一种类似于普通效果(由createEffect
创建)的计算,但在 Solid 调度效果函数首次执行的时机上有所不同。
虽然createEffect
会等待当前渲染阶段完成,但createRenderEffect
会立即调用该函数。
因此,该效果会在 DOM 元素创建和更新时运行,但可能在特定目标元素创建之前,并且很可能在这些元素连接到文档之前就执行。
特别是,在初始效果调用之前,refs(引用)不会被设置。
实际上,Solid 使用createRenderEffect
来实现渲染阶段本身,包括设置refs。
渲染效果的响应式更新与普通效果相同:它们会在响应式变化时排队(例如,单个信号更新、批量更改或整个渲染阶段的集体更改),并在之后的单个batch
中运行(与效果一起)。
特别是,渲染效果中的所有信号更新都会被批处理。
以下是行为示例。(与createEffect
中的示例进行比较。)
就像createEffect
一样,效果函数会接收一个参数,该参数等于效果函数上次执行返回的值,或在第一次调用时,等于createRenderEffect
的可选第二个参数。
参数
名称 | 类型 | 描述 |
---|---|---|
fn | (v: T) => T | 要调用的效果函数 |
value | T | 传递给效果函数的初始值 |