React Navigation Drawer (ナビゲーション ドロワー) の概要

    React Navigation Drawer は、コンテンツ内で展開または縮小されることができるサイド ナビゲーションを提供します。ミニ バージョンが閉じている場合もナビゲーションへのクイック アクセスを提供します。そのコンテンツは完全にカスタマイズ可能であると同時に、デフォルトのメニュー項目のスタイルも提供します。

    React Navigation Drawer の例

    このサンプルは、IgrNavDrawer コンポーネントを作成する方法を示しています。

    使用方法

    まず、次のコマンドを実行して、対応する Ignite UI for React npm パッケージをインストールする必要があります:

    npm install igniteui-react
    

    次に、以下のように、IgrNavDrawer とそれに必要な CSS をインポートし、そのモジュールを登録する必要があります:

    import { IgrNavDrawerModule, IgrNavDrawer, IgrNavDrawerHeaderItem, IgrNavDrawerItem } from 'igniteui-react';
    import 'igniteui-webcomponents/themes/light/bootstrap.css';
    
    IgrNavDrawerModule.register();
    

    Ignite UI for React の完全な概要については、作業の開始トピックを参照してください。

    IgrNavDrawer の使用を開始する最も簡単な方法は次のとおりです:

    <IgrNavDrawer open={true}>
        <IgrNavDrawerHeaderItem>
            <span>Sample Drawer</span>
        </IgrNavDrawerHeaderItem>
        <IgrNavDrawerItem>
            <div slot="icon">
                <IgrIcon name="home" collection="material" />
            </div>
            <span slot="content">Home</span>
        </IgrNavDrawerItem>
        <IgrNavDrawerItem>
            <div slot="icon">
                <IgrIcon name="search" collection="material" />
            </div>
            <span slot="content">Search</span>
        </IgrNavDrawerItem>
    </IgrNavDrawer>
    

    以下は結果です:

    ドロワーには任意のコンテンツを提供できますが、IgrNavDrawerItem が定義済みのスタイル設定を項目に適用します。

    コンポーネントを少し強化するために、IgrNavbar と組み合わせて使用できます。このようにして、より完成された外観を実現し、ドロワーの方法を使用できます。次の例でこれを見てみましょう:

    <IgrNavbar>
        <div slot="start">
            <IgrIcon name="menu" collection="material"/>
        </div>
        <h2>Home</h2>
    </IgrNavbar>
    
    <IgrNavDrawer>
        <IgrNavDrawerHeaderItem>
            <span>Sample Drawer</span>
        </IgrNavDrawerHeaderItem>
        <IgrNavDrawerItem>
            <div slot="icon">
                <IgrIcon name="home" collection="material" />
            </div>
            <span slot="content">Home</span>
        </IgrNavDrawerItem>
        <IgrNavDrawerItem>
            <div slot="icon">
                <IgrIcon name="search" collection="material" />
            </div>
            <span slot="content">Search</span>
        </IgrNavDrawerItem>
    </IgrNavDrawer>
    

    また、すべての position の値を表示するためにいくつかのラジオ ボタンを追加しましょう。このように、1 つが選択されるたびに、ドロワーの位置を変更します。

    <IgrRadioGroup alignment="horizontal">
        <IgrRadio value="start" labelPosition="after" checked={true} change={this.onRadioChange}>
            <span>Start</span>
        </IgrRadio>
        <IgrRadio value="end" labelPosition="after" change={this.onRadioChange}>
            <span>End</span>
        </IgrRadio>
        <IgrRadio value="top" labelPosition="after" change={this.onRadioChange}>
            <span>Top</span>
        </IgrRadio>
        <IgrRadio value="bottom" labelPosition="after" change={this.onRadioChange}>
            <span>Bottom</span>
        </IgrRadio>
    </IgrRadioGroup>
    
    <IgrNavDrawer position={this.state.drawerPosition} />
    
    public onRadioChange(e: any) {
        if (e.checked == true) {
            this.setState({ drawerPosition: e.value });
        }
    }
    

    そして最後に、Navigation Drawer を開閉する方法が必要です。これを実現するにはいくつかの方法がありますが、この例のために、次のことを行います:

    public onMenuIconClick() {
        if (this.navDrawerRef) {
            this.navDrawerRef.show();
        }
    }
    

    すべてがうまくいけば、コンポーネントは次のようになります:

    ミニ バリアント

    ミニ バリアントを使用する場合、Navigation Drawer を閉じる代わりに幅を変更します。アイコンだけを残して、いつでも利用できるクイック ナビゲーションを維持するために使用されます。これを実現するには、ドロワーの mini スロットを設定するだけです。

    <IgrNavDrawer>
        <IgrNavDrawerItem>
            <div slot="icon">
                <IgrIcon name="home" collection="material" />
            </div>
            <span slot="content">Home</span>
        </IgrNavDrawerItem>
        <IgrNavDrawerItem>
            <div slot="icon">
                <IgrIcon name="search" collection="material"/>
            </div>
            <span slot="content">Search</span>
        </IgrNavDrawerItem>
        <div slot="mini">
            <IgrNavDrawerItem>
                <div slot="icon">
                    <IgrIcon name="home" collection="material"/>
                </div>
            </IgrNavDrawerItem>
            <IgrNavDrawerItem>
                <div slot="icon">
                    <IgrIcon name="search" collection="material" />
                </div>
            </IgrNavDrawerItem>
        </div>
    </IgrNavDrawer>
    
    <IgrButton clicked={this.onButtonClick}>
        <span>Toggle</span>
    </IgrButton>
    

    以下は結果です:

    Navigation Drawer コンポーネントは、basemainmini など、いくつかの CSS パーツを公開します。Navigation Drawer Item コンポーネントは、baseiconcontent の 3 つの CSS パーツも公開し、スタイルを完全に制御できるようにします。

    igc-nav-drawer::part(base) {
        background: #2d313a;
    }
    
    igc-nav-drawer-item::part(base) {
        color: #fff;
    }
    
    igc-nav-drawer-item::part(base):hover {
        background-color: #3D4149;
    }
    
    igc-nav-drawer-item[active]::part(base) {
        background: #f3c03e;
        color: #2c2c2c
    }
    
    igc-nav-drawer-header-item {
        color: #f3c03e
    }
    

    API リファレンス

    その他のリソース