#leptos #signals #traits #reactivity #utility #signal

leptos-tracked

用于与 leptos 信号交互的实用特征

5 个版本

0.1.4 2023 年 3 月 7 日
0.1.3 2023 年 3 月 7 日
0.1.2 2023 年 3 月 7 日
0.1.1 2023 年 3 月 7 日
0.1.0 2023 年 3 月 7 日

#303 in 渲染

自定义许可证

8KB
167

leptos-tracked

此包提供用于与 leptos 信号交互的实用特征。

提供的实用工具提供了访问标准库特征或函数的能力,而无需将闭包传递给 update 函数。

示例

使用任何 tracked_* 函数来更新一个可变信号。

use leptos::create_signal;

let (read_i32, write_i32) = create_signal(cx, 4 as i32);
let (read_bool, write_bool) = create_signal(cx, false);
let (read_str, write_str) = create_signal(cx, String::from("Hello"));
let (read_vec, write_vec) = create_signal(cx, vec![1, 2, 3]);

use leptos_tracked::MulAssign;

write_i32.tracked_mul(10);
assert_eq!(read_i32.get(), 40);

use leptos_tracked::Toggle;

write_bool.tracked_toggle();
assert_eq!(read_bool.get(), true);

use leptos_tracked::{AddAssign, Extend};

write_str.tracked_add(" ");
write_str.tracked_extend(vec!["World", "!"]);
assert_eq!(read_str.get(), "Hello World!");

use leptos_tracked::TrackedVec;

write_vec.tracked_pop();
write_vec.tracked_push(4);
assert_eq!(read_vec.get(), vec![1, 2, 4]);

write_vec.tracked_clear();
assert_eq!(read_vec.get(), vec![] as Vec<i32>);

依赖关系

~4–5.5MB
~100K SLoC