mirror of
https://github.com/iczer/vue-antd-admin
synced 2025-04-06 04:00:06 +08:00
73 lines
26 KiB
HTML
73 lines
26 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="zh-CN">
|
||
<head>
|
||
<meta charset="utf-8">
|
||
<meta name="viewport" content="width=device-width,initial-scale=1">
|
||
<title>布局 | Vue Antd Admin</title>
|
||
<meta name="generator" content="VuePress 1.5.2">
|
||
<link rel="icon" href="/vue-antd-admin/favicon.ico">
|
||
<meta name="description" content="Vue Antd Admin">
|
||
<link rel="preload" href="/vue-antd-admin/assets/css/0.styles.bd25473a.css" as="style"><link rel="preload" href="/vue-antd-admin/assets/js/app.81f629f2.js" as="script"><link rel="preload" href="/vue-antd-admin/assets/js/2.efe08854.js" as="script"><link rel="preload" href="/vue-antd-admin/assets/js/13.6486b2b7.js" as="script"><link rel="prefetch" href="/vue-antd-admin/assets/js/10.fc22e02c.js"><link rel="prefetch" href="/vue-antd-admin/assets/js/11.d6af616e.js"><link rel="prefetch" href="/vue-antd-admin/assets/js/12.02101d76.js"><link rel="prefetch" href="/vue-antd-admin/assets/js/14.63ac8c9b.js"><link rel="prefetch" href="/vue-antd-admin/assets/js/15.036f6404.js"><link rel="prefetch" href="/vue-antd-admin/assets/js/16.480eef8d.js"><link rel="prefetch" href="/vue-antd-admin/assets/js/17.3db12977.js"><link rel="prefetch" href="/vue-antd-admin/assets/js/18.f0f9c1df.js"><link rel="prefetch" href="/vue-antd-admin/assets/js/19.354947d2.js"><link rel="prefetch" href="/vue-antd-admin/assets/js/20.238b6d6c.js"><link rel="prefetch" href="/vue-antd-admin/assets/js/21.2ad92480.js"><link rel="prefetch" href="/vue-antd-admin/assets/js/22.c2b44b1a.js"><link rel="prefetch" href="/vue-antd-admin/assets/js/23.4f33a1b3.js"><link rel="prefetch" href="/vue-antd-admin/assets/js/24.98bd0394.js"><link rel="prefetch" href="/vue-antd-admin/assets/js/3.de49d059.js"><link rel="prefetch" href="/vue-antd-admin/assets/js/4.a730639a.js"><link rel="prefetch" href="/vue-antd-admin/assets/js/5.49ac6fbd.js"><link rel="prefetch" href="/vue-antd-admin/assets/js/6.cef5f990.js"><link rel="prefetch" href="/vue-antd-admin/assets/js/7.e81a592e.js"><link rel="prefetch" href="/vue-antd-admin/assets/js/8.3a87e890.js"><link rel="prefetch" href="/vue-antd-admin/assets/js/9.705ebe25.js">
|
||
<link rel="stylesheet" href="/vue-antd-admin/assets/css/0.styles.bd25473a.css">
|
||
</head>
|
||
<body>
|
||
<div id="app" data-server-rendered="true"><div class="theme-container"><header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"></path></svg></div> <a href="/vue-antd-admin/" class="home-link router-link-active"><img src="/vue-antd-admin/logo.png" alt="Vue Antd Admin" class="logo"> <span class="site-name can-hide">Vue Antd Admin</span></a> <div class="links"><div class="search-box"><input aria-label="Search" autocomplete="off" spellcheck="false" value=""> <!----></div> <nav class="nav-links can-hide"><div class="nav-item"><a href="/vue-antd-admin/" class="nav-link">
|
||
指南
|
||
</a></div><div class="nav-item"><a href="/vue-antd-admin/develop/" class="nav-link router-link-active">
|
||
配置
|
||
</a></div><div class="nav-item"><a href="/vue-antd-admin/advance/theme.html" class="nav-link">
|
||
主题
|
||
</a></div> <a href="https://github.com/iczer/vue-antd-admin" target="_blank" rel="noopener noreferrer" class="repo-link">
|
||
GitHub
|
||
<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></nav></div></header> <div class="sidebar-mask"></div> <aside class="sidebar"><nav class="nav-links"><div class="nav-item"><a href="/vue-antd-admin/" class="nav-link">
|
||
指南
|
||
</a></div><div class="nav-item"><a href="/vue-antd-admin/develop/" class="nav-link router-link-active">
|
||
配置
|
||
</a></div><div class="nav-item"><a href="/vue-antd-admin/advance/theme.html" class="nav-link">
|
||
主题
|
||
</a></div> <a href="https://github.com/iczer/vue-antd-admin" target="_blank" rel="noopener noreferrer" class="repo-link">
|
||
GitHub
|
||
<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></nav> <ul class="sidebar-links"><li><section class="sidebar-group depth-0"><p class="sidebar-heading"><span>开始</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/vue-antd-admin/start/use.html" class="sidebar-link">使用</a></li><li><a href="/vue-antd-admin/start/faq.html" class="sidebar-link">常见问题</a></li></ul></section></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading open"><span>开发</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/vue-antd-admin/develop/layout.html" aria-current="page" class="active sidebar-link">布局</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/vue-antd-admin/develop/layout.html#vue-antd-admin-的布局" class="sidebar-link">Vue Antd Admin 的布局</a></li><li class="sidebar-sub-header"><a href="/vue-antd-admin/develop/layout.html#vue-antd-admin-的视图" class="sidebar-link">Vue Antd Admin 的视图</a></li><li class="sidebar-sub-header"><a href="/vue-antd-admin/develop/layout.html#如何使用" class="sidebar-link">如何使用</a></li><li class="sidebar-sub-header"><a href="/vue-antd-admin/develop/layout.html#ant-design-vue-布局组件" class="sidebar-link">Ant Design Vue 布局组件</a></li></ul></li><li><a href="/vue-antd-admin/develop/router.html" class="sidebar-link">路由和菜单</a></li><li><a href="/vue-antd-admin/develop/page.html" class="sidebar-link">页面</a></li><li><a href="/vue-antd-admin/develop/theme.html" class="sidebar-link">主题定制</a></li><li><a href="/vue-antd-admin/develop/service.html" class="sidebar-link">服务端交互</a></li><li><a href="/vue-antd-admin/develop/mock.html" class="sidebar-link">Mock</a></li></ul></section></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading"><span>进阶</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/vue-antd-admin/advance/i18n.html" class="sidebar-link">国际化</a></li><li><a href="/vue-antd-admin/advance/chart.html" class="sidebar-link">图表</a></li><li><a href="/vue-antd-admin/advance/theme.html" class="sidebar-link">更换主题</a></li><li><a href="/vue-antd-admin/advance/error.html" class="sidebar-link">错误处理</a></li><li><a href="/vue-antd-admin/advance/authority.html" class="sidebar-link">权限管理</a></li></ul></section></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading"><span>其它</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/vue-antd-admin/other/upgrade.html" class="sidebar-link">更新日志</a></li><li><a href="/vue-antd-admin/other/community.html" class="sidebar-link">社区</a></li></ul></section></li></ul> </aside> <main class="page"> <div class="theme-default-content content__default"><h1 id="布局"><a href="#布局" class="header-anchor">#</a> 布局</h1> <p>页面整体布局是一个产品最外层的框架结构,往往会包含导航、页脚、侧边栏、通知栏以及内容等。在页面之中,也有很多区块的布局结构。在真实项目中,页面布局通常统领整个应用的界面,有非常重要的作用。</p> <h2 id="vue-antd-admin-的布局"><a href="#vue-antd-admin-的布局" class="header-anchor">#</a> Vue Antd Admin 的布局</h2> <p>在 Vue Antd Admin 中,我们抽离了使用过程中的通用布局,其中分为结构布局都放在 layouts 目录中,分别为:</p> <ul><li><a href="https://github.com/iczer/vue-antd-admin/blob/master/src/layouts/AdminLayout.vue" target="_blank" rel="noopener noreferrer">AdminLayout<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a> / <strong>管理后台布局</strong>,包含了头部导航,侧边导航、内容区和页脚,一般用于后台系统的整体布局</li></ul> <p><img src="/admin-layout.png" alt="image"></p> <ul><li><a href="https://github.com/iczer/vue-antd-admin/blob/master/src/layouts/PageLayout.vue" target="_blank" rel="noopener noreferrer">PageLayout<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a> / <strong>页面布局</strong>,包含了页头和内容区,常用于需要页头(一般包含面包屑、标题、额外操作等)的页面</li></ul> <p><img src="/page-layout.png" alt="image"></p> <ul><li><a href="https://github.com/iczer/vue-antd-admin/blob/master/src/layouts/CommonLayout.vue" target="_blank" rel="noopener noreferrer">CommonLayout<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a> / <strong>通用布局</strong>,仅包含页脚的简单布局,项目中常用于注册、登录或展示页面</li></ul> <p><img src="/common-layout.png" alt="image"></p> <h2 id="vue-antd-admin-的视图"><a href="#vue-antd-admin-的视图" class="header-anchor">#</a> Vue Antd Admin 的视图</h2> <p>在 Vue Antd Admin 中,除了基本布局外,通常有很多页面的结构是相似的。因此,我们把这部分结构抽离为视图组件。<br>
|
||
一个视图组件通常包含一个基本布局组件、视图公共区块、路由视图内容区、页脚等,常常结合路由配置使用。它们也被放入了 layouts 目录中,分别为:</p> <ul><li><a href="https://github.com/iczer/vue-antd-admin/blob/master/src/layouts/TabsView.vue" target="_blank" rel="noopener noreferrer">TabsView<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a> / <strong>多页签视图</strong>,包含了 AdminLayout 布局、多页签头和路由视图内容区</li></ul> <p><img src="/tabs-view.png" alt="image"></p> <ul><li><a href="https://github.com/iczer/vue-antd-admin/blob/master/src/layouts/PageView.vue" target="_blank" rel="noopener noreferrer">PageView<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a> / <strong>页面视图</strong>,包含了 PageLayout 布局和路由视图内容区</li></ul> <p><img src="/page-view.png" alt="image"></p> <ul><li><a href="https://github.com/iczer/vue-antd-admin/blob/master/src/layouts/BlankView.vue" target="_blank" rel="noopener noreferrer">BlankView<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a> / <strong>空白视图</strong>,仅包含一个路由视图内容区</li></ul> <p><img src="/blank-view.png" alt="image"></p> <h2 id="如何使用"><a href="#如何使用" class="header-anchor">#</a> 如何使用</h2> <p>通常我们会把视图组件和路由配置结合一起使用,我们把配置信息抽离在路由配置文件中 <a href="https://github.com/iczer/vue-antd-admin/blob/master/src/router/index.js" target="_blank" rel="noopener noreferrer">router/index.js<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a> 。如下:</p> <div class="language-jsx extra-class"><pre class="language-jsx"><code><span class="token punctuation">{</span>
|
||
path<span class="token operator">:</span> <span class="token string">'form'</span><span class="token punctuation">,</span>
|
||
name<span class="token operator">:</span> <span class="token string">'表单页'</span><span class="token punctuation">,</span>
|
||
meta<span class="token operator">:</span> <span class="token punctuation">{</span>
|
||
icon<span class="token operator">:</span> <span class="token string">'form'</span><span class="token punctuation">,</span>
|
||
<span class="token punctuation">}</span><span class="token punctuation">,</span>
|
||
component<span class="token operator">:</span> PageView<span class="token punctuation">,</span>
|
||
children<span class="token operator">:</span> <span class="token punctuation">[</span>
|
||
<span class="token punctuation">{</span>
|
||
path<span class="token operator">:</span> <span class="token string">'basic'</span><span class="token punctuation">,</span>
|
||
name<span class="token operator">:</span> <span class="token string">'基础表单'</span><span class="token punctuation">,</span>
|
||
<span class="token function-variable function">component</span><span class="token operator">:</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token keyword">import</span><span class="token punctuation">(</span><span class="token string">'@/pages/form/basic/BasicForm'</span><span class="token punctuation">)</span><span class="token punctuation">,</span>
|
||
<span class="token punctuation">}</span>
|
||
<span class="token punctuation">]</span>
|
||
<span class="token punctuation">}</span>
|
||
</code></pre></div><p>当然,如果这满足不了你的需求,你也可以自定义一些视图组件,或者直接在页面组件中使用布局。参考
|
||
<a href="https://github.com/iczer/vue-antd-admin/blob/master/src/pages/dashboard/workplace/WorkPlace.vue" target="_blank" rel="noopener noreferrer">workplace<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a> 页面:</p> <div class="language-vue extra-class"><pre class="language-vue"><code><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>template</span><span class="token punctuation">></span></span>
|
||
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>page-layout</span> <span class="token attr-name">:avatar</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>currUser.avatar<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>
|
||
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>div</span> <span class="token attr-name">slot</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>headerContent<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>
|
||
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>div</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>title<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>{{$t('timeFix')}},{{currUser.name}},{{$t('welcome')}}<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>div</span><span class="token punctuation">></span></span>
|
||
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>div</span><span class="token punctuation">></span></span>{{$t('position')}}<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>div</span><span class="token punctuation">></span></span>
|
||
<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>div</span><span class="token punctuation">></span></span>
|
||
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>template</span> <span class="token attr-name">slot</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>extra<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>
|
||
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>head-info</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>split-right<span class="token punctuation">"</span></span> <span class="token attr-name">:title</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>$t('project')<span class="token punctuation">"</span></span> <span class="token attr-name">content</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>56<span class="token punctuation">"</span></span><span class="token punctuation">/></span></span>
|
||
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>head-info</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>split-right<span class="token punctuation">"</span></span> <span class="token attr-name">:title</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>$t('ranking')<span class="token punctuation">"</span></span> <span class="token attr-name">content</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>8/24<span class="token punctuation">"</span></span><span class="token punctuation">/></span></span>
|
||
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>head-info</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>split-right<span class="token punctuation">"</span></span> <span class="token attr-name">:title</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>$t('visit')<span class="token punctuation">"</span></span> <span class="token attr-name">content</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>2,223<span class="token punctuation">"</span></span><span class="token punctuation">/></span></span>
|
||
<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>template</span><span class="token punctuation">></span></span>
|
||
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>div</span><span class="token punctuation">></span></span>...<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>div</span><span class="token punctuation">></span></span>
|
||
<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>page-layout</span><span class="token punctuation">></span></span>
|
||
<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>template</span><span class="token punctuation">></span></span>
|
||
</code></pre></div><h2 id="ant-design-vue-布局组件"><a href="#ant-design-vue-布局组件" class="header-anchor">#</a> Ant Design Vue 布局组件</h2> <p>除了 Admin 里的内建布局以外,在一些页面中需要进行布局,还可以使用 Ant Design Vue 提供的布局组件:Grid 和 Layout。</p> <h3 id="grid-组件"><a href="#grid-组件" class="header-anchor">#</a> Grid 组件</h3> <p>栅格布局是网页中最常用的布局,其特点就是按照一定比例划分页面,能够随着屏幕的变化依旧保持比例,从而具有弹性布局的特点。</p> <p>而 Ant Design Vue 的栅格组件提供的功能更为强大,能够设置间距、具有支持响应式的比例设置,以及支持 flex 模式,基本上涵盖了大部分的布局场景,详情查看:<a href="https://www.antdv.com/components/grid-cn/" target="_blank" rel="noopener noreferrer">Grid<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a>。</p> <h3 id="layout-组件"><a href="#layout-组件" class="header-anchor">#</a> Layout 组件</h3> <p>如果你需要辅助页面框架级别的布局设计,那么 Layout 则是你最佳的选择,它抽象了大部分框架布局结构,使得只需要填空就可以开发规范专业的页面整体布局,详情查看:<a href="https://www.antdv.com/components/layout-cn/" target="_blank" rel="noopener noreferrer">Layout<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a>。</p> <h3 id="根据不同场景区分抽离布局组件"><a href="#根据不同场景区分抽离布局组件" class="header-anchor">#</a> 根据不同场景区分抽离布局组件</h3> <p>在大部分场景下,我们需要基于上面两个组件封装一些适用于当下具体业务的组件,包含了通用的导航、侧边栏、顶部通知、页面标题等元素。例如 Vue Antd Admin 的 AdminLayout。</p> <p>通常,我们会把抽象出来的布局组件,放到 layouts 文件夹中方便管理。需要注意的是,这些布局组件和我们平时使用的其它组件并没有什么不同,只不过功能性上是为了处理布局问题而单独归类。</p></div> <footer class="page-edit"><div class="edit-link"><a href="https://github.com/iczer/vue-antd-admin/edit/master/docs/develop/layout.md" target="_blank" rel="noopener noreferrer">Edit this page</a> <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></div> <div class="last-updated"><span class="prefix">Last Updated:</span> <span class="time">2020-6-29 21:44:46</span></div></footer> <div class="page-nav"><p class="inner"><span class="prev">
|
||
←
|
||
<a href="/vue-antd-admin/start/faq.html" class="prev">
|
||
常见问题
|
||
</a></span> <span class="next"><a href="/vue-antd-admin/develop/router.html">
|
||
路由和菜单
|
||
</a>
|
||
→
|
||
</span></p></div> </main></div><div class="global-ui"></div></div>
|
||
<script src="/vue-antd-admin/assets/js/app.81f629f2.js" defer></script><script src="/vue-antd-admin/assets/js/2.efe08854.js" defer></script><script src="/vue-antd-admin/assets/js/13.6486b2b7.js" defer></script>
|
||
</body>
|
||
</html>
|