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