类工具来自 密码
一个小软件包,使 React 组件库与大多数样式解决方案交互操作. ()看这个推特线索 解释为什么这样有用(中文(简体) )
你这样写你的图书馆代码:
// foo-library code
import { useClasser } from "@code-hike/classer"
export function Foo({ classes }) {
const c = useClasser("foo", classes)
return (
<div className={c("container")}>
<h1 className={c("title")}>Hello</h1>
<p className={c("description")}>World</p>
<img
className={c("img")}
src="https://placekitten.com/200/200"
/>
</div>
)
}
图书馆的消费者在他们的应用中也这样使用:
import { Foo } from "foo-library"
const classes = {
"foo-title": "my-app-blue",
"foo-img": "rounded-corners some-border",
}
function MyApp() {
return <Foo classes={classes} />
}
MyApp 制作此 HTML:
<div class="foo-container">
<h1 class="foo-title my-app-blue">Hello</h1>
<p class="foo-description">World</p>
<img
class="foo-img rounded-corners some-border"
src="https://placekitten.com/200/200"
/>
</div>
实例:
A. 背景情况
您也可以这样做( 避免通过) classes 到嵌入组件 :
// foo-library code
import {
useClasser,
ClasserProvider,
} from "@code-hike/classer"
export function Foo({ classes }) {
return (
<ClasserProvider classes={classes}>
<FirstChild />
<SecondChild />
</ClasserProvider>
)
}
function FirstChild() {
const c = useClasser("foo-first")
return <h1 className={c("title")}>Hi</h1>
}
function SecondChild() {
const c = useClasser("foo-second")
return <h1 className={c("title")}>Ho</h1>
}
import { Foo } from "./foo-library"
import styles from "./app.module.css"
const classes = {
"foo-title": styles.myTitle,
"foo-img": styles.myImage,
}
function MyApp() {
return <Foo classes={classes} />
}
许可证
麻省理工学院