在 Remix 中使用 Chakra
Chakra UI 在 Remix 项目中的安装指南
模板
¥Templates
使用下方的 remix 模板快速入门。
¥Use the remix template below to get started quickly.
安装
¥Installation
添加代码片段
¥Add snippets
代码片段是预先构建的组件,你可以使用它们更快地构建 UI。使用 @chakra-ui/cli
属性,你可以将代码片段添加到你的项目中。
¥Snippets are pre-built components that you can use to build your UI faster.
Using the @chakra-ui/cli
you can add snippets to your project.
npx @chakra-ui/cli snippet add
设置表情缓存
¥Setup emotion cache
使用 Remix 沙盒中的代码片段,你可以将表情缓存添加到你的应用中。
¥Using snippets from the Remix sandbox, you can add the emotion cache to your application.
更新 tsconfig
¥Update tsconfig
如果你使用的是 TypeScript,则需要更新 tsconfig 文件中的 compilerOptions
,使其包含以下选项:
¥If you're using TypeScript, you need to update the compilerOptions
in the
tsconfig file to include the following options:
tsconfig.json
{
"compilerOptions": {
"target": "ESNext",
"module": "ESNext",
"moduleResolution": "Bundler",
"skipLibCheck": true
}
}
如果你使用 JavaScript,请创建一个 jsconfig.json
文件并将上述代码添加到该文件中。
设置提供者
¥Setup provider
使用 Provider
组件封装你的应用,并将其置于应用的根目录。
¥Wrap your application with the Provider
component at the root of your
application.
此提供程序包含以下内容:
¥This provider composes the following:
-
ChakraProvider
来自@chakra-ui/react
,用于样式系统 -
ThemeProvider
来自next-themes
,用于颜色模式
app/root.tsx
import React from "react"
import ReactDOM from "react-dom/client"
import App from "./App"
import { Provider } from "@/components/ui/provider"
export default function App() {
return (
<Provider>
<Outlet />
</Provider>
)
}
尽情享受吧!
¥Enjoy!
借助 Chakra UI 的代码片段和原始组件的强大功能,你可以更快地构建 UI。
¥When the power of the snippets and the primitive components from Chakra UI, you can build your UI faster.
import { Button, HStack } from "@chakra-ui/react"
const Demo = () => {
return (
<HStack>
<Button>Click me</Button>
<Button>Click me</Button>
</HStack>
)
}
已知问题
¥Known issues
在 Remix 中使用 Chakra UI 时,你可能会遇到以下问题:
¥You may encounter the following issues when using Chakra UI with Remix:
Error: There was an error while hydrating. Because the error happened outside of a Suspense boundary, the entire root will switch to client rendering.
这是一个与你浏览器中安装的扩展程序相关的已知问题。我们建议你在隐身模式下测试你的应用,看看问题是否仍然存在。
¥This is a known issue related to extension installed in your browser. We recommend testing your application in incognito mode to see if the issue persists.
我们欢迎你为修复此问题做出贡献。