Function sycamore_reactive::create_root[][src]

pub fn create_root<'a>(callback: impl FnOnce() + 'a) -> ReactiveScope
Expand description

Creates a new reactive root / scope. Generally, you won’t need this method as it is called automatically in render.

Example

use sycamore_reactive::*;

let trigger = Signal::new(());
let counter = Signal::new(0);

let scope = create_root(cloned!((trigger, counter) => move || {
    create_effect(move || {
        trigger.get(); // subscribe to trigger
        counter.set(*counter.get_untracked() + 1);
    });
}));

assert_eq!(*counter.get(), 1);

trigger.set(());
assert_eq!(*counter.get(), 2);

drop(scope);
trigger.set(());
assert_eq!(*counter.get(), 2); // should not be updated because scope was dropped