Function maple_core::reactive::create_root[][src]

#[must_use =
  "create_root returns the owner of the effects created inside this scope"]pub fn create_root<'a>(callback: impl FnOnce() + 'a) -> Owner

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

Example

use maple_core::prelude::*;

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

let owner = 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(owner);
trigger.set(());
assert_eq!(*counter.get(), 2); // should not be updated because owner was dropped