UNPKG

@b-design/ui-layout

Version:

React component for Alibaba Cloud.

273 lines (230 loc) 6.14 kB
# @b-design/ui-layout ## 安装 ```bash tnpm i -S @b-design/ui-layout ``` ## 介绍 ### 我们为您提供了三种固定布局组件以及可自由定制的组件: <VerticalLayout />组件为左侧垂直菜单和header区域布局; <HozLayout />组件为菜单和Header区域融合布局; <BothSidesLayout />组件为二级导航布局,即为顶部导航和左侧导航共存; <Layout />组件为可自由定制组件; ## 使用示例 ### 基本使用 ```javascript import Layout from '@b-design/ui-layout'; import { Breadcrumb } from '@b-design/ui' const items = [ { key: '/home', to: '/home', label: '首页', icon: 'Home-outlined', }, { key: '/instance', to: '/instance', label: '实例概览', icon: 'Home-outlined', }, { key: '/logs', label: '日志', icon: 'Home-outlined', items: [ { key: '/pre', to: '/pre', label: '预发环境' }, { key: '/prod', to: '/prod', label: '生产环境' }, ], }, ] const breadcrumb = ( <Breadcrumb> <Breadcrumb.Item>Home</Breadcrumb.Item> <Breadcrumb.Item>Blog</Breadcrumb.Item> <Breadcrumb.Item>Name It, and They Will Come</Breadcrumb.Item> </Breadcrumb> ) const Layout = (props) => { return ( <Layout> <Layout.Header leftContainer={(<div>Header左侧区域</div>)} title='B-Design' rightContainer={(<div>Header右侧区域</div>)} style={{ color: '#ffffff' }} /> <Layout.Container> <Layout.Sider> <RoutableMenu items={items} style={{height: '100%', width: '200px'}} /> </Layout.Sider> <Page style={{flex: 'auto'}}> <Page.Header title={'测试测试测试测'} breadcrumb={breadcrumb} onBackArrowClick={() => { window.history.back() }} /> <Page.Content> <div>内容内容内容</div> </Page.Content> </Page> </Layout.Container> </Layout> ) } ``` ## 固定布局 ### 使用左侧菜单固定布局 ```javascript import { VerticalLayout } from '@b-design/ui-layout'; import { Breadcrumb } from '@b-design/ui' const items = [ { key: '/home', to: '/home', label: '首页', icon: 'Home-outlined', }, { key: '/instance', to: '/instance', label: '实例概览', icon: 'Home-outlined', }, { key: '/logs', label: '日志', icon: 'Home-outlined', items: [ { key: '/pre', to: '/pre', label: '预发环境' }, { key: '/prod', to: '/prod', label: '生产环境' }, ], }, ] const breadcrumb = ( <Breadcrumb> <Breadcrumb.Item>Home</Breadcrumb.Item> <Breadcrumb.Item>Blog</Breadcrumb.Item> <Breadcrumb.Item>Name It, and They Will Come</Breadcrumb.Item> </Breadcrumb> ) const Layout = (props) => { return ( <VerticalLayout breadcrumb={breadcrumb} menus={items} leftContainer={(<div>Header左侧区域</div>)} rightContainer={(<div>Header右侧区域</div>)} pageTitle='内容区的标题' onBackArrowClick={() => { window.history.back() }} headerExtra={(<h3>测试测试</h3>)} > {props.children} </VerticalLayout> ) } ``` ### 使用横向导航的页面布局 ```javascript import { HozLayout } from '@b-design/ui-layout'; import { Breadcrumb } from '@b-design/ui' const items = [ { key: '/home', label: '首页', to: '/home' }, { key: '/demo', label: '例子', items: [ { key: '/demo/item1', to: '/demo/item1', label: '子节点1', }, { key: '/demo/item2', to: '/demo/item2', label: '子节点2', } ] } ] const breadcrumb = ( <Breadcrumb> <Breadcrumb.Item>Home</Breadcrumb.Item> <Breadcrumb.Item>Blog</Breadcrumb.Item> <Breadcrumb.Item>Name It, and They Will Come</Breadcrumb.Item> </Breadcrumb> ) const Layout = (props) => { return ( <HozLayout breadcrumb={breadcrumb} menus={items} leftContainer={(<div>Header左侧区域</div>)} rightContainer={(<div>Header右侧区域</div>)} pageTitle='内容区的标题' onBackArrowClick={() => { window.history.back() }} > {props.children} </HozLayout> ) } ``` ### 使用二级导航的页面布局 ``` javascript import { BothSidesLayout } from '@b-design/ui-layout'; import { Breadcrumb } from '@b-design/ui' const NAVS = [ { key: '/home', label: '首页', to: '/home' }, { key: '/demo', label: '例子', items: [ { key: '/demo/item1', to: '/demo/item1', label: '子节点1', items: [ { key: '/demo/item1/item', label: '示例', to: '/demo/item1/item' } ] }, { key: '/demo/item2', to: '/demo/item2', label: '子节点2', } ] } ] const breadcrumb = ( <Breadcrumb> <Breadcrumb.Item>Home</Breadcrumb.Item> <Breadcrumb.Item>Blog</Breadcrumb.Item> <Breadcrumb.Item>Name It, and They Will Come</Breadcrumb.Item> </Breadcrumb> ) const Layout = (props) => { return ( <BothSidesLayout menus={NAVS} leftContainer={(<div>Header左侧区域</div>)} rightContainer={(<div>Header右侧区域</div>)} pageTitle='内容区的标题' onBackArrowClick={() => { window.history.back() }} breadcrumb={breadcrumb} > {props.children} </BothSidesLayout> ) } ``` ## Layout 下包括以下组件: | 组件 | 介绍 | | :----------------: | :----------------: | Layout.Header | 整体的Header区域 | | Layout.Container | 页面整体的内容区域 | | Layout.Sider | 菜单栏 | | Layout.VerticalLayout | 固定布局中的左侧菜单布局 | | Layout.HozLayout | 固定布局中的头部菜单布局 | | Layout.BothSidesLayout | 固定布局中的二级菜单布局 |