as
は、semantic-UI-reactのほとんどのコンポーネントでAn element type to render as (string or function).
として定義されています。どういう意味ですか?
私の理解では、それはas
が何であれコンポーネントを何らかの形で変更します。
例:
https://react.semantic-ui.com/modules/sidebarSidebar as={Menu}
がある場合、子は<Menu.Item name='...'>
であり、開始に必要な通常の<Menu/>
はありません。メニュー。
この機能はaugmentationと呼ばれ、レンダリングされたHTMLタグを制御したり、あるコンポーネントを別のコンポーネントとしてレンダリングしたりできます。追加の小道具は、レンダリングするコンポーネントに渡されます。ネストされたコンポーネントを追加することなく、コンポーネントの機能と小道具を作成できます。
Sidebar
の例は、Sidebar
がその子をMenu
にレンダリングすることを示しています。これは次のように書くこともできますが、これは余分なマークアップを引き起こします。これは常に正しいとは限らず、スタイリングを壊す可能性があります。
<Sidebar>
<Menu>
<Menu.Item />
</Menu>
</Sidebar>
タグ付きの基本的な例:
<Button /> // will produce <button class='ui button' />
<Button as='a' /> // will produce <a class='ui button' />
react-router
の例:
<Menu.Item as={Link} to='/home' /> // will produce <a class="item" href="/home">