Function freya::prelude::use_memo

pub fn use_memo<T, D>(
    cx: &ScopeState,
    dependencies: D,
    callback: impl FnOnce(<D as UseFutureDep>::Out) -> T
) -> &Twhere
    T: 'static,
    D: UseFutureDep,
Expand description

A hook that provides a callback that executes if the dependencies change. This is useful to avoid running computation-expensive calculations even when the data doesn’t change.

  • dependencies: a tuple of references to values that are PartialEq + Clone

Examples


#[component]
fn Calculator(cx: Scope, number: usize) -> Element {
    let bigger_number = use_memo(cx, (number,), |(number,)| {
        // This will only be calculated when `number` has changed.
        number * 100
    });
    render!(
        p { "{bigger_number}" }
    )
}

#[component]
fn App(cx: Scope) -> Element {
    render!(Calculator { number: 0 })
}