Spinner 加载组件 #
基本用法 #
jsx
import { Spinner } from '@chakra-ui/react'
function Example() {
return <Spinner />
}
加载尺寸 #
jsx
<Spinner size="xs" />
<Spinner size="sm" />
<Spinner size="md" />
<Spinner size="lg" />
<Spinner size="xl" />
加载颜色 #
jsx
<Spinner color="red.500" />
<Spinner color="blue.500" />
<Spinner color="green.500" />
<Spinner color="orange.500" />
加载速度 #
jsx
<Spinner speed="0.5s" />
<Spinner speed="1s" />
<Spinner speed="2s" />
加载厚度 #
jsx
<Spinner thickness="2px" />
<Spinner thickness="4px" />
<Spinner thickness="6px" />
空白颜色 #
jsx
<Spinner emptyColor="gray.200" color="blue.500" />
实用示例 #
居中加载 #
jsx
function CenteredSpinner() {
return (
<Flex justify="center" align="center" h="200px">
<Spinner size="xl" />
</Flex>
)
}
带文字加载 #
jsx
function LoadingWithText() {
return (
<HStack spacing={4}>
<Spinner />
<Text color="gray.500">加载中...</Text>
</HStack>
)
}
全屏加载 #
jsx
function FullPageLoader() {
return (
<Flex
position="fixed"
top={0}
left={0}
right={0}
bottom={0}
justify="center"
align="center"
bg="white"
zIndex="overlay"
>
<VStack spacing={4}>
<Spinner size="xl" color="blue.500" />
<Text color="gray.500">正在加载...</Text>
</VStack>
</Flex>
)
}
按钮加载状态 #
jsx
function LoadingButton({ isLoading, children, ...props }) {
return (
<Button {...props} isDisabled={isLoading}>
{isLoading ? <Spinner size="sm" mr={2} /> : null}
{children}
</Button>
)
}
Spinner 属性速查表 #
| 属性 | 说明 | 值 |
|---|---|---|
| size | 尺寸 | xs, sm, md, lg, xl |
| color | 颜色 | 颜色值 |
| speed | 速度 | 时间值 |
| thickness | 厚度 | 尺寸值 |
| emptyColor | 空白颜色 | 颜色值 |
下一步 #
现在你已经掌握了 Spinner 组件,接下来学习 Menu 菜单,了解如何使用下拉菜单组件!
最后更新:2026-03-28