update_derived() — svelte Function Reference
Architecture documentation for the update_derived() function in deriveds.js from the svelte codebase.
Entity Profile
Dependency Diagram
graph TD e6ca562d_6ddf_c249_6259_b15d55cbdd91["update_derived()"] 2fb8b3eb_7c25_3930_a184_09fab29d537f["deriveds.js"] e6ca562d_6ddf_c249_6259_b15d55cbdd91 -->|defined in| 2fb8b3eb_7c25_3930_a184_09fab29d537f 9d7b1994_c635_b82f_ff1f_b19fc461c425["is_dirty()"] 9d7b1994_c635_b82f_ff1f_b19fc461c425 -->|calls| e6ca562d_6ddf_c249_6259_b15d55cbdd91 a08b6cc5_af73_1be4_d02f_3113cf8a8305["get()"] a08b6cc5_af73_1be4_d02f_3113cf8a8305 -->|calls| e6ca562d_6ddf_c249_6259_b15d55cbdd91 6ac29608_bb3f_4976_22d6_2651518ca4bc["execute_derived()"] e6ca562d_6ddf_c249_6259_b15d55cbdd91 -->|calls| 6ac29608_bb3f_4976_22d6_2651518ca4bc cba02be5_1b7d_ad21_f54b_8a8a90da7e59["equals()"] e6ca562d_6ddf_c249_6259_b15d55cbdd91 -->|calls| cba02be5_1b7d_ad21_f54b_8a8a90da7e59 4af42bfc_fe4c_0160_eada_7d109f39af3a["increment_write_version()"] e6ca562d_6ddf_c249_6259_b15d55cbdd91 -->|calls| 4af42bfc_fe4c_0160_eada_7d109f39af3a 6479f832_c1d7_7636_b658_b3f9c70d9af0["set_signal_status()"] e6ca562d_6ddf_c249_6259_b15d55cbdd91 -->|calls| 6479f832_c1d7_7636_b658_b3f9c70d9af0 461d1f5f_ffa4_d984_98a4_868566c66f30["effect_tracking()"] e6ca562d_6ddf_c249_6259_b15d55cbdd91 -->|calls| 461d1f5f_ffa4_d984_98a4_868566c66f30 63ee8247_ada4_9f1d_e139_0c1167cd5b1c["set()"] e6ca562d_6ddf_c249_6259_b15d55cbdd91 -->|calls| 63ee8247_ada4_9f1d_e139_0c1167cd5b1c 58b2d309_6832_2659_5c05_6923f97c1163["update_derived_status()"] e6ca562d_6ddf_c249_6259_b15d55cbdd91 -->|calls| 58b2d309_6832_2659_5c05_6923f97c1163 style e6ca562d_6ddf_c249_6259_b15d55cbdd91 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
packages/svelte/src/internal/client/reactivity/deriveds.js lines 356–394
export function update_derived(derived) {
var value = execute_derived(derived);
if (!derived.equals(value)) {
derived.wv = increment_write_version();
// in a fork, we don't update the underlying value, just `batch_values`.
// the underlying value will be updated when the fork is committed.
// otherwise, the next time we get here after a 'real world' state
// change, `derived.equals` may incorrectly return `true`
if (!current_batch?.is_fork || derived.deps === null) {
derived.v = value;
// deriveds without dependencies should never be recomputed
if (derived.deps === null) {
set_signal_status(derived, CLEAN);
return;
}
}
}
// don't mark derived clean if we're reading it inside a
// cleanup function, or it will cache a stale value
if (is_destroying_effect) {
return;
}
// During time traveling we don't want to reset the status so that
// traversal of the graph in the other batches still happens
if (batch_values !== null) {
// only cache the value if we're in a tracking context, otherwise we won't
// clear the cache in `mark_reactions` when dependencies are updated
if (effect_tracking() || current_batch?.is_fork) {
batch_values.set(derived, value);
}
} else {
update_derived_status(derived);
}
}
Domain
Subdomains
Calls
Called By
Source
Frequently Asked Questions
What does update_derived() do?
update_derived() is a function in the svelte codebase, defined in packages/svelte/src/internal/client/reactivity/deriveds.js.
Where is update_derived() defined?
update_derived() is defined in packages/svelte/src/internal/client/reactivity/deriveds.js at line 356.
What does update_derived() call?
update_derived() calls 7 function(s): effect_tracking, equals, execute_derived, increment_write_version, set, set_signal_status, update_derived_status.
What calls update_derived()?
update_derived() is called by 2 function(s): get, is_dirty.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free