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