Avatar 头像组件 #
基本用法 #
jsx
import { Avatar } from '@chakra-ui/react'
function Example() {
return <Avatar src="https://bit.ly/dan-abramov" name="Dan Abramov" />
}
头像尺寸 #
jsx
<Avatar size="xs" name="用户" />
<Avatar size="sm" name="用户" />
<Avatar size="md" name="用户" />
<Avatar size="lg" name="用户" />
<Avatar size="xl" name="用户" />
<Avatar size="2xl" name="用户" />
头像组 #
jsx
import { AvatarGroup } from '@chakra-ui/react'
<AvatarGroup size="md" max={2}>
<Avatar name="Ryan Florence" src="https://bit.ly/ryan-florence" />
<Avatar name="Segun Adebayo" src="https://bit.ly/sage-adebayo" />
<Avatar name="Kent Dodds" src="https://bit.ly/kent-c-dodds" />
<Avatar name="Prosper Otemuyiwa" src="https://bit.ly/prosper-baba" />
</AvatarGroup>
头像状态 #
带徽章 #
jsx
<Avatar src="https://bit.ly/dan-abramov">
<AvatarBadge boxSize="1.25em" bg="green.500" />
</Avatar>
加载失败 #
jsx
<Avatar src="invalid-url" name="Dan Abramov" />
自定义样式 #
jsx
<Avatar
name="Dan Abramov"
bg="blue.500"
color="white"
borderRadius="md"
/>
实用示例 #
用户信息卡片 #
jsx
function UserProfile({ user }) {
return (
<HStack spacing={4}>
<Avatar src={user.avatar} name={user.name} size="lg">
<AvatarBadge boxSize="1em" bg={user.online ? 'green.500' : 'gray.400'} />
</Avatar>
<Box>
<Text fontWeight="bold">{user.name}</Text>
<Text color="gray.500" fontSize="sm">{user.email}</Text>
</Box>
</HStack>
)
}
评论头像 #
jsx
function Comment({ comment }) {
return (
<HStack align="start" spacing={3}>
<Avatar src={comment.user.avatar} name={comment.user.name} size="sm" />
<Box>
<HStack>
<Text fontWeight="bold" fontSize="sm">{comment.user.name}</Text>
<Text color="gray.500" fontSize="xs">{comment.time}</Text>
</HStack>
<Text fontSize="sm">{comment.content}</Text>
</Box>
</HStack>
)
}
Avatar 属性速查表 #
| 属性 | 说明 | 值 |
|---|---|---|
| src | 图片地址 | URL |
| name | 用户名 | string |
| size | 尺寸 | xs, sm, md, lg, xl, 2xl |
| bg | 背景色 | 颜色值 |
下一步 #
现在你已经掌握了 Avatar 组件,接下来学习 Badge 徽章,了解如何展示状态徽章!
最后更新:2026-03-28