1个不稳定版本
0.0.1 | 2022年8月18日 |
---|
#5 在 #scoping
在 css-loader 中使用
9KB
156 代码行
rust-css-loader
一个简单的宏,用于在Rust中使用类似CSS Modules的作用域包含样式文件。
示例
main.rs
use yew::prelude::*;
import_style!("src/styles.scss");
#[function_component(App)]
fn app() -> Html {
html! {
<h1 class={styles.header}>{ "Hello World" }</h1>
}
}
fn main() {
println!("Hello, world!");
yew::start_app::<App>();
}
styles.scss
$textcolor: yellow;
$fontsize: 18px;
.header {
color: $textcolor;
font-size: $fontsize;
}
注意
样式是相对于 CARGO_MANIFEST_DIR
导入的,基本上是包含 Cargo.toml
文件的目录。最好像在JavaScript中一样进行相对路径导入,然而,由于Rust编译器的一个小 限制,目前无法实现。
其次,同样的限制阻止了我们有一种方式“链接”样式文件到Rust源文件,因此修改样式文件不会触发重建/重新加载。
这两个问题将在Rust编译器中此API稳定后得到解决。
.css
文件直接导入,而 .scss
文件则由 rsass 编译并自动加载。
依赖
~5MB
~109K SLoC