1 个稳定版本
1.0.0 | 2023 年 4 月 15 日 |
---|
1374 在 Rust 模式 中
每月 26 次下载
在 unocss-classes 中使用
6KB
95 行
类
classes
是一个轻量级且无需依赖的宏,简化了为 DOM 元素构建类字符串的过程。它接受可变数量的参数,并将它们组合成单个类字符串。这个宏的设计灵感来自流行的 classnames
npm 包,该包通常在 React 和其他框架中使用。
用法
您可以将字符串类型或可以转换为字符串的类型提供给宏
Option<String>
/Option<&str>
将使用选项的内部值,如果选项是Some
,如果选项是None
则忽略该选项String
/&str
将按原样应用- 特殊语法
string_expr => bool_expr
将在bool_expr
评估为 true 时使用string_expr
使用 Classes 宏可以通过减少构建类字符串所需的样板代码来简化您的代码。
示例
use classes::classes;
fn main() {
let optional = Some("lumos");
let is_night = true;
let class = classes!["hogwarts", optional, "hogwarts--at-night" => is_night, "wingardium-leviosa" => false];
println!("{class}"); // => 'hogwarts lumos hogwarts--at-night'
}
Dioxus 示例
use classes::classes;
pub fn Button<'a>(cx: Scope<'a, ButtonProps<'a>>) -> Element {
let class = classes!["button", "button--disabled" => cx.props.disabled, cx.props.class];
cx.render(rsx! {
button { class }
})
}