使用高级 Chakra UI 组件,更快地构建 💎

了解更多
跳到内容
文档在线示例指南博客
赞助

组合

了解如何在 Chakra UI 中组合组件。

Theas 属性

用于更改 React 组件渲染的底层 HTML 元素。它提供了一种直接的方式来更改底层元素,同时保留组件的功能。

<Heading as="h3">Hello, world!</Heading>
警告
TypeScript: 使用 as 属性的注意事项是,传递给 as 属性的组件类型必须与组件的属性兼容。我们不会从 as 属性推断底层组件的属性。

The asChild 属性

用于将组件功能组合到其子元素上。这种方法受到 Radix UI 的启发,提供了最大的灵活性。

<Popover.Root>
  <Popover.Trigger asChild>
    <Button>Open</Button>
  </Popover.Trigger>
</Popover.Root>

在此示例中,asChild 属性允许将 Button 用作气泡框的触发器。

最佳实践

为避免使用 asasChild 属性时常见的陷阱,需要考虑以下几点最佳实践

  • 转发引用: 确保底层组件正确转发传递给它的引用。
  • 展开属性: 确保底层组件展开传递给它的属性。
const MyComponent = React.forwardRef((props, ref) => {
  return <Box ref={ref} {...props} />
})

// with `as` prop
<MyComponent as="button" />

// with `asChild` prop
<Button asChild>
  <MyComponent> Click me </MyComponent>
</Button>

上一页

概述

下一页

动画