#react #dom #ui

dxosus-hooks

为 Dioxus 提供的基本有用钩子

19 个版本

0.6.0-alpha.2 2024 年 8 月 7 日
0.5.6 2024 年 7 月 18 日
0.5.0 2024 年 3 月 28 日
0.4.3 2023 年 12 月 7 日
0.2.0 2022 年 3 月 9 日

#185 in GUI

Download history 3618/week @ 2024-04-20 4675/week @ 2024-04-27 4694/week @ 2024-05-04 4928/week @ 2024-05-11 4766/week @ 2024-05-18 4556/week @ 2024-05-25 5183/week @ 2024-06-01 3990/week @ 2024-06-08 4769/week @ 2024-06-15 4877/week @ 2024-06-22 3108/week @ 2024-06-29 2456/week @ 2024-07-06 3685/week @ 2024-07-13 3495/week @ 2024-07-20 3793/week @ 2024-07-27 3606/week @ 2024-08-03

14,985 每月下载量
用于 27 个工具包 (8 个直接使用)

MIT/Apache

585KB
11K SLoC

Dioxus Hooks

Crates.io MIT licensed Build Status Discord chat

网站 | 指南 | API 文档 | 聊天

概述

dxosus-hooks 包含一些 Dioxus 用的基本有用钩子,如

  • use_signal
  • use_effect
  • use_resource
  • use_memo
  • use_coroutine

与 React 不同,这些钩子都不是基础的,因为它们都是基于原生的 use_hook 构建的。您可以在自己的代码中使用 自定义钩子 扩展这些钩子。如果您认为它们对更广泛的社区有用,您可以打开一个 PR 将您的钩子添加到 Dioxus Awesome 列表中。

状态速查表

如果您不确定要使用哪个钩子,可以使用此速查表来帮助您决定

状态位置

根据您需要访问状态的位置,您可以将状态放在以下三个位置之一

位置 您可以在哪里访问状态? 适用于库吗? 示例
钩子 您传递给它的任何组件 use_signal(|| 0)use_memo(|| state() * 2)
上下文 任何子组件 use_context_provider(||Signal::new(0)), use_context::<Signal<i32>>()
全局 您的应用程序中的任何内容 信号::全局(|| 0)

派生状态

如果您没有状态初始值,您可以使用闭包或异步函数从其他状态派生您的状态

钩子 响应式(当依赖项更改时重新运行) 异步 记住输出 示例
use_memo use_memo(move || count() * 2)
use_resource use_resource(move || reqwest::get(format!("/users/{user_id}")))
use_future use_future(move || println!("{:?}", reqwest::get(format!("/users/{user_id}"))))

持久状态

核心钩子库不提供持久状态的钩子,但您可以使用来自 dioxus-sdkdioxus-router 的钩子扩展核心钩子以提供持久状态管理。

状态 可共享 示例
use_persistent use_persistent("unique_key", move ||initial_state)
路由器<路由> {} #[derive(Routable,Clone,PartialEq)] enum 路由 { #[route("/user/:id")]主页{id: u32 } }

贡献

  • 在我们的 问题跟踪器 上报告问题。
  • 加入discord并提问!

许可

本项目采用 MIT 许可证

除非您明确声明,否则您提交给 Dioxus 的任何有意贡献都应按照 MIT 许可证许可,不附带任何附加条款或条件。

依赖项

~2.5–8.5MB
~67K SLoC