vue-antd-admin/develop/layout.html
chenghongxing c0e1032c51 Updates
2024-05-08 10:46:58 +08:00

73 lines
30 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!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-docs/favicon.ico">
<meta name="description" content="Vue Antd Admin">
<link rel="preload" href="/vue-antd-admin-docs/assets/css/0.styles.8338f4d6.css" as="style"><link rel="preload" href="/vue-antd-admin-docs/assets/js/app.2bc9664a.js" as="script"><link rel="preload" href="/vue-antd-admin-docs/assets/js/2.8c76fef9.js" as="script"><link rel="preload" href="/vue-antd-admin-docs/assets/js/3.d23e2c53.js" as="script"><link rel="prefetch" href="/vue-antd-admin-docs/assets/js/10.089b316f.js"><link rel="prefetch" href="/vue-antd-admin-docs/assets/js/11.45b1f56d.js"><link rel="prefetch" href="/vue-antd-admin-docs/assets/js/12.01a276f6.js"><link rel="prefetch" href="/vue-antd-admin-docs/assets/js/13.1a84d693.js"><link rel="prefetch" href="/vue-antd-admin-docs/assets/js/14.bc952f61.js"><link rel="prefetch" href="/vue-antd-admin-docs/assets/js/15.e2444773.js"><link rel="prefetch" href="/vue-antd-admin-docs/assets/js/16.f4922829.js"><link rel="prefetch" href="/vue-antd-admin-docs/assets/js/17.2a1eabce.js"><link rel="prefetch" href="/vue-antd-admin-docs/assets/js/18.96936b0c.js"><link rel="prefetch" href="/vue-antd-admin-docs/assets/js/19.b8c9b558.js"><link rel="prefetch" href="/vue-antd-admin-docs/assets/js/20.5e521f7e.js"><link rel="prefetch" href="/vue-antd-admin-docs/assets/js/21.94de0f4c.js"><link rel="prefetch" href="/vue-antd-admin-docs/assets/js/22.fb46e5b6.js"><link rel="prefetch" href="/vue-antd-admin-docs/assets/js/23.030dc832.js"><link rel="prefetch" href="/vue-antd-admin-docs/assets/js/24.d3dad329.js"><link rel="prefetch" href="/vue-antd-admin-docs/assets/js/25.3ea85210.js"><link rel="prefetch" href="/vue-antd-admin-docs/assets/js/26.dbfb0d65.js"><link rel="prefetch" href="/vue-antd-admin-docs/assets/js/27.d2edf1e7.js"><link rel="prefetch" href="/vue-antd-admin-docs/assets/js/28.5bf8a8a9.js"><link rel="prefetch" href="/vue-antd-admin-docs/assets/js/29.baa62900.js"><link rel="prefetch" href="/vue-antd-admin-docs/assets/js/30.472c91a2.js"><link rel="prefetch" href="/vue-antd-admin-docs/assets/js/31.a79ce13e.js"><link rel="prefetch" href="/vue-antd-admin-docs/assets/js/32.ca4080fb.js"><link rel="prefetch" href="/vue-antd-admin-docs/assets/js/33.09a90ca2.js"><link rel="prefetch" href="/vue-antd-admin-docs/assets/js/4.a8d32d40.js"><link rel="prefetch" href="/vue-antd-admin-docs/assets/js/5.b598fcf7.js"><link rel="prefetch" href="/vue-antd-admin-docs/assets/js/6.a929b4e3.js"><link rel="prefetch" href="/vue-antd-admin-docs/assets/js/7.1b0a900f.js"><link rel="prefetch" href="/vue-antd-admin-docs/assets/js/8.a6aa3458.js"><link rel="prefetch" href="/vue-antd-admin-docs/assets/js/9.b6ba06c2.js">
<link rel="stylesheet" href="/vue-antd-admin-docs/assets/css/0.styles.8338f4d6.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-docs/" class="home-link router-link-active"><img src="/vue-antd-admin-docs/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-docs/" class="nav-link">
指南
</a></div><div class="nav-item"><a href="/vue-antd-admin-docs/develop/layout.html" aria-current="page" class="nav-link router-link-exact-active router-link-active">
配置
</a></div><div class="nav-item"><a href="/vue-antd-admin-docs/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-docs/" class="nav-link">
指南
</a></div><div class="nav-item"><a href="/vue-antd-admin-docs/develop/layout.html" aria-current="page" class="nav-link router-link-exact-active router-link-active">
配置
</a></div><div class="nav-item"><a href="/vue-antd-admin-docs/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-docs/start/use.html" class="sidebar-link">使用</a></li><li><a href="/vue-antd-admin-docs/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-docs/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-docs/develop/layout.html#admin-的布局" class="sidebar-link">Admin 的布局</a></li><li class="sidebar-sub-header"><a href="/vue-antd-admin-docs/develop/layout.html#admin-的视图" class="sidebar-link">Admin 的视图</a></li><li class="sidebar-sub-header"><a href="/vue-antd-admin-docs/develop/layout.html#如何使用" class="sidebar-link">如何使用</a></li><li class="sidebar-sub-header"><a href="/vue-antd-admin-docs/develop/layout.html#其它布局组件" class="sidebar-link">其它布局组件</a></li></ul></li><li><a href="/vue-antd-admin-docs/develop/router.html" class="sidebar-link">路由和菜单</a></li><li><a href="/vue-antd-admin-docs/develop/page.html" class="sidebar-link">页面</a></li><li><a href="/vue-antd-admin-docs/develop/theme.html" class="sidebar-link">主题定制</a></li><li><a href="/vue-antd-admin-docs/develop/service.html" class="sidebar-link">服务端交互</a></li><li><a href="/vue-antd-admin-docs/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-docs/advance/i18n.html" class="sidebar-link">国际化</a></li><li><a href="/vue-antd-admin-docs/advance/async.html" class="sidebar-link">异步路由和菜单</a></li><li><a href="/vue-antd-admin-docs/advance/authority.html" class="sidebar-link">权限管理</a></li><li><a href="/vue-antd-admin-docs/advance/login.html" class="sidebar-link">登录认证</a></li><li><a href="/vue-antd-admin-docs/advance/guard.html" class="sidebar-link">路由守卫</a></li><li><a href="/vue-antd-admin-docs/advance/interceptors.html" class="sidebar-link">拦截器配置</a></li><li><a href="/vue-antd-admin-docs/advance/api.html" class="sidebar-link">全局API</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-docs/other/upgrade.html" class="sidebar-link">更新日志</a></li><li><a href="/vue-antd-admin-docs/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="admin-的布局"><a href="#admin-的布局" class="header-anchor">#</a> 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="/vue-antd-admin-docs/assets/img/admin-layout.538ade29.png" alt="admin-layout"></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="/vue-antd-admin-docs/assets/img/page-layout.a45de70f.png" alt="page-layout"></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="/vue-antd-admin-docs/assets/img/common-layout.1680e466.png" alt="common-layout"></p> <h2 id="admin-的视图"><a href="#admin-的视图" class="header-anchor">#</a> 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="/vue-antd-admin-docs/assets/img/tabs-view.64ed8eb1.png" alt="tabs-view"></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="/vue-antd-admin-docs/assets/img/page-view.5fe6cc90.png" alt="page-view"></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="/vue-antd-admin-docs/assets/img/blank-view.d5483c86.png" alt="blank-view"></p> <h2 id="如何使用"><a href="#如何使用" class="header-anchor">#</a> 如何使用</h2> <p>通常我们会把视图组件和路由配置结合一起使用,我们把配置信息抽离在路由配置文件中 <a href="https://github.com/iczer/vue-antd-admin/blob/master/src/router/config.js" target="_blank" rel="noopener noreferrer">src/router/config.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 line-numbers-mode"><div class="highlight-lines"><br><br><br><br><br><br><div class="highlighted"> </div><br><br><br><br><div class="highlighted"> </div><br><br><br><br></div><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">=&gt;</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 class="line-numbers-wrapper"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br><span class="line-number">5</span><br><span class="line-number">6</span><br><span class="line-number">7</span><br><span class="line-number">8</span><br><span class="line-number">9</span><br><span class="line-number">10</span><br><span class="line-number">11</span><br><span class="line-number">12</span><br><span class="line-number">13</span><br><span class="line-number">14</span><br><span class="line-number">15</span><br></div></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 line-numbers-mode"><div class="highlight-lines"><br><div class="highlighted"> </div><br><br><br><br><br><br><br><br><br><br><div class="highlighted"> </div><br><br></div><pre class="language-vue"><code><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>template</span><span class="token punctuation">&gt;</span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>page-layout</span> <span class="token attr-name">:avatar</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">&quot;</span>currUser.avatar<span class="token punctuation">&quot;</span></span><span class="token punctuation">&gt;</span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>div</span> <span class="token attr-name">slot</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">&quot;</span>headerContent<span class="token punctuation">&quot;</span></span><span class="token punctuation">&gt;</span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>div</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">&quot;</span>title<span class="token punctuation">&quot;</span></span><span class="token punctuation">&gt;</span></span>{{$t('timeFix')}}{{currUser.name}}{{$t('welcome')}}<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>div</span><span class="token punctuation">&gt;</span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>div</span><span class="token punctuation">&gt;</span></span>{{$t('position')}}<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>div</span><span class="token punctuation">&gt;</span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>div</span><span class="token punctuation">&gt;</span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>template</span> <span class="token attr-name">slot</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">&quot;</span>extra<span class="token punctuation">&quot;</span></span><span class="token punctuation">&gt;</span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>head-info</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">&quot;</span>split-right<span class="token punctuation">&quot;</span></span> <span class="token attr-name">:title</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">&quot;</span>$t(<span class="token punctuation">'</span>project<span class="token punctuation">'</span>)<span class="token punctuation">&quot;</span></span> <span class="token attr-name">content</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">&quot;</span>56<span class="token punctuation">&quot;</span></span><span class="token punctuation">/&gt;</span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>head-info</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">&quot;</span>split-right<span class="token punctuation">&quot;</span></span> <span class="token attr-name">:title</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">&quot;</span>$t(<span class="token punctuation">'</span>ranking<span class="token punctuation">'</span>)<span class="token punctuation">&quot;</span></span> <span class="token attr-name">content</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">&quot;</span>8/24<span class="token punctuation">&quot;</span></span><span class="token punctuation">/&gt;</span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>head-info</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">&quot;</span>split-right<span class="token punctuation">&quot;</span></span> <span class="token attr-name">:title</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">&quot;</span>$t(<span class="token punctuation">'</span>visit<span class="token punctuation">'</span>)<span class="token punctuation">&quot;</span></span> <span class="token attr-name">content</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">&quot;</span>2,223<span class="token punctuation">&quot;</span></span><span class="token punctuation">/&gt;</span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>template</span><span class="token punctuation">&gt;</span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>div</span><span class="token punctuation">&gt;</span></span>...<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>div</span><span class="token punctuation">&gt;</span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>page-layout</span><span class="token punctuation">&gt;</span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>template</span><span class="token punctuation">&gt;</span></span>
</code></pre><div class="line-numbers-wrapper"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br><span class="line-number">5</span><br><span class="line-number">6</span><br><span class="line-number">7</span><br><span class="line-number">8</span><br><span class="line-number">9</span><br><span class="line-number">10</span><br><span class="line-number">11</span><br><span class="line-number">12</span><br><span class="line-number">13</span><br><span class="line-number">14</span><br></div></div><h2 id="其它布局组件"><a href="#其它布局组件" class="header-anchor">#</a> 其它布局组件</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 的 <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></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">在 Github 上帮助我们编辑此页</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/7/23 14:42:10</span></div></footer> <div class="page-nav"><p class="inner"><span class="prev">
<a href="/vue-antd-admin-docs/start/faq.html" class="prev">
常见问题
</a></span> <span class="next"><a href="/vue-antd-admin-docs/develop/router.html">
路由和菜单
</a>
</span></p></div> </main></div><div class="global-ui"><!----></div></div>
<script src="/vue-antd-admin-docs/assets/js/app.2bc9664a.js" defer></script><script src="/vue-antd-admin-docs/assets/js/2.8c76fef9.js" defer></script><script src="/vue-antd-admin-docs/assets/js/3.d23e2c53.js" defer></script>
</body>
</html>