1. 程式人生 > >002-ant design pro 布局

002-ant design pro 布局

篩選 html imp 我們 mas app 路由 http span

一、概述

  參看地址:https://pro.ant.design/docs/layout-cn

  其實在上述地址ant-design上已經有詳細介紹,本文知識簡述概要。

  頁面整體布局是一個產品最外層的框架結構,往往會包含導航、頁腳、側邊欄、通知欄以及內容等。在頁面之中,也有很多區塊的布局結構。Ant Design 目前提供了兩套布局方案:Layout 和 Grid 。

二、布局

2.1、根據不同場景區分抽離布局組件

  在大部分場景下,我們需要基於上面兩個組件封裝一些適用於當下具體業務的組件,包含了通用的導航、側邊欄、頂部通知、頁面標題等元素。例如 Ant Design Pro 的 BasicLayout。

  通常,我們會把抽象出來的布局組件,放到跟 routescomponents 平行的 layouts 文件夾中方便管理。需要註意的是,這些布局組件和我們平時使用的其它組件並沒有什麽不同,只不過功能性上是為了處理布局問題。

2.2、處理 this.props.children 屬性

  在抽離的過程中,往往需要處理布局包含的內容組件,而 this.props.children 就代表了標簽中的內容,如果你需要對其子元素進行篩選處理,可以使用 React.children.forEach 方法。

2.3、Ant Design Pro 的布局

在 Ant Design Pro 中,我們抽離了使用過程中的通用布局,都放在 layouts 目錄中,分別為:

  BasicLayout:基礎頁面布局,包含了頭部導航,側邊欄和通知欄:

    技術分享圖片

  BlankLayout:空白的布局、

  PageHeaderLayout:帶有標準 PageHeader 的布局

  UserLayout:抽離出用於登陸註冊頁面的通用布局

    技術分享圖片

2.4、如何使用 Ant Design Pro 布局

  我們為了統一方便的管理路由和頁面的關系,將配置信息統一抽離到 src/common/router.js 下,同時應用動態路由,通過如下配置:

const routerConfig = {
  ‘/‘: {
    component: dynamicWrapper(app, [
‘user‘, ‘login‘], () => import(‘../layouts/BasicLayout‘)), }, ‘/dashboard/analysis‘: { component: dynamicWrapper(app, [‘chart‘], () => import(‘../routes/Dashboard/Analysis‘)), }, ‘/user‘: { component: dynamicWrapper(app, [], () => import(‘../layouts/UserLayout‘)), }, ‘/user/login‘: { component: dynamicWrapper(app, [‘login‘], () => import(‘../routes/User/Login‘)), }, };

映射路由和頁面布局(組件)的關系。詳細的映射轉換實現,參看 router.js。

002-ant design pro 布局