@ant-design-vue/pro-layout

中文文档
3.2.5发布于 2023/10/22TypeScriptESM + CJS近 30 天下载 4120

Vue的Ant Design Pro布局,易于使用亲脚手架.

中文使用文档
文档目录11 节
  1. 基本用途
  2. 处
  3. 安装
  4. 简单使用
  5. API 密码
  6. 普罗拉尤特
  7. 页面连接器
  8. 水马克
  9. 自定义渲染器
  10. 使用水 Mark 软件
  11. 构建项目

蚂蚁设计方案布局

NPM version Vue Support Vue Grammar Level NPM downloads License

💻 预览布局数字 :

基本用途

建议看 实例 或者说 使用模板

处

安装

# yarn
yarn add @ant-design-vue/pro-layout
# npm
npm i @ant-design-vue/pro-layout -S

简单使用

首先,你应该添加 @ant-design-vue/pro-layout 你需要进入图书馆.

// main.[js|ts]
import "@ant-design-vue/pro-layout/dist/style.css"; // pro-layout css or style.less

import { createApp } from "vue";
import App from "./App.vue";
import Antd from "ant-design-vue";
import ProLayout, { PageContainer } from "@ant-design-vue/pro-layout";

const app = createApp(App);

app.use(Antd).use(ProLayout).use(PageContainer).mount("#app");

之后,您可以在您的 Vue 组件中使用 pro-layout, 简单如下:

<template>
  <pro-layout
    :locale="locale"
    v-bind="layoutConf"
    v-model:openKeys="state.openKeys"
    v-model:collapsed="state.collapsed"
    v-model:selectedKeys="state.selectedKeys"
  >
    <router-view />
  </pro-layout>
</template>

<script setup lang="ts">
import { reactive, useRouter } from "vue";
import { getMenuData, clearMenuItem } from "@ant-design-vue/pro-layout";

const locale = (i18n: string) => i18n;
const router = useRouter();

const { menuData } = getMenuData(clearMenuItem(router.getRoutes()));

const state = reactive({
  collapsed: false, // default value
  openKeys: ["/dashboard"],
  selectedKeys: ["/welcome"],
});
const layoutConf = reactive({
  navTheme: "dark",
  layout: "mix",
  splitMenus: false,
  menuData,
});
</script>

API 密码

普罗拉尤特

财产说明类型默认值
标题左上角标题中的布局VNode QQ 字符串'Ant Design Pro'
标志左上方的标志 urlVNode QQ 渲染- 说吧
装入布局加载状态布尔- 说吧
版式布局菜单模式,侧菜单:右向导航,上菜单:上向导航“ 边 ” “ 顶 ” “ mix ”'side'
内容窗口内容布局模式, 流体:适应性, 固定: 固定宽度 1200px"Fixed" "Fluid" (英语)Fluid
导航主题导航主题"光" "黑暗"'light'
标题主题标题栏主题"光" "黑暗"'light'
菜单数据单路车 routes 道具对象[{}]
崩溃控制菜单的崩溃和扩展布尔真实
选中关键字菜单所选密钥字符串 [][]
打开密钥菜单打开密钥字符串 [][]
移动移动布尔虚假
@ collapse 上的缩写菜单折叠倒塌事件(拼接:布尔)- 说吧
菜单头渲染页眉标识和标题v-slot QQ VNode QQ (logo, title) (中文(简体) ). VNode QQ 错误- 说吧
菜单外延渲染器转换额外菜单项v-slot QQ VNode QQ (道具) QQ VNode QQ 错误- 说吧
菜单转换页脚菜单项v-slot QQ VNode QQ (道具) QQ VNode QQ 错误- 说吧
菜单自定义变成菜单。 项目v- slot# menu ProjectRender="{项目,图标}" QQ ({项目,图标}) QQ V 节点无效
子菜单项目渲染器自定义变成菜单。 子项目v- slot#subMenu ProjectRender="{项目,图标}"({项目,图标}) QQ V 节点无效
崩溃的按钮渲染器自定义已崩溃的按钮方法slot | (拼接:布尔) => (=>) V 节点- 说吧
页眉自定义页眉渲染方法slot (道具: BasicLayoutProps) =>. V 节点- 说吧
信头连线标题内容只渲染布局侧面的方法slot (道具: BasicLayoutProps) =>. V 节点- 说吧
右连线右侧内容渲染方法slot (道具: BasicLayoutProps) =>. V 节点- 说吧
页脚自定义页脚渲染方法slot ({宽度,. BasicLayoutProps}}}} { 宽度, { 基本 Layout Props}}}} V 节点false
选项卡自定义标签渲染方法slot ({宽度,. BasicLayoutProps}}}} { 宽度, { 基本 Layout Props}}}} V 节点false
面包屑铸造器自定义面包屑渲染方法slot * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ** * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ** * * * * * * * * * * * * * * * *** ********************************************************************- 说吧
语言i18n (英语)函数( 键: 字符串) QQ 字符串 QQ falsefalse

菜单生成需要 getMenuData 财务报告和审定财务报表 clearMenuItem 函数 譬如说. const { menuData } = getMenuData(clearMenuItem(routes))

页面连接器

财产说明类型默认值
内容内容领域VNode QQ v- slot 图像- 说吧
额外其他内容区域, 在内容的右侧VNode QQ v- slot 图像- 说吧
额外关联其他内容区域, 在内容的右侧VNode QQ v- slot 图像- 说吧
选项卡列表标签标题列表Array<{key: string, tab: sting}>- 说吧
选项卡更改切换面板回调(键) 虚空- 说吧
选项卡活性键当前突出显示的标签项字符串- 说吧
面包屑显示面包屑栏布尔- 说吧

水马克

财产说明类型默认值
标记样式标记样式CSS 财产- 说吧
标记分类Name标记类字符串- 说吧
差额X水标记之间的水平间隔编号212号
差额Y水印之间的垂直间隔编号第222条
页:1页:1编号offsetTop = gapX / 2
页:1页:1编号offsetTop = gapY / 2
宽度编号120国
高度编号64国道
旋转旋转角度, 单位 °编号-22号
图像图像弧字符串- 说吧
zindex 数据水标记 z 索引编号第9条
内容水标记内容字符串- 说吧
字体颜色字体颜色字符串rgba(0,0,0,.15)
字体大小字体大小字符串|编号16个

自定义渲染器

自定义右侧串联

<template #rightContentRender>
  <div style="margin-right: 12px">
    <a-avatar shape="square" size="small">
      <template #icon>
        <UserOutlined />
      </template>
    </a-avatar>
  </div>
</template>

自定义菜单. item

<template #menuItemRender="{ item, icon }">
  <a-menu-item
    :key="item.path"
    :disabled="item.meta?.disabled"
    :danger="item.meta?.danger"
    :icon="icon"
  >
    <router-link :to="{ path: item.path }">
      <span class="ant-pro-menu-item">
        <a-badge count="5" dot>
          <span class="ant-pro-menu-item-title">{{ item.meta.title }}</span>
        </a-badge>
      </span>
    </router-link>
  </a-menu-item>
</template>

自定义菜单ExtraRender

<template #menuExtraRender="{ collapsed }">
  <a-input-search v-if="!collapsed" />
</template>

自定义菜单Footer渲染器

<template #menuFooterRender>
  <div>menu footer</div>
</template>

自定义面包屑铸件

<template #breadcrumbRender="{ route, params, routes }">
  <span v-if="routes.indexOf(route) === routes.length - 1">
    {{ route.breadcrumbName }}
  </span>
  <router-link v-else :to="{ path: route.path, params }">
    {{ route.breadcrumbName }}
  </router-link>
</template>

自定义已崩溃的按钮渲染器

<template #collapsedButtonRender="collapsed">
  <HeartOutlined v-if="collapsed" />
  <SmileOutlined v-else />
</template>

自定义标签

<template #tabRender="{ width, fixedHeader }">
  <div>
    <header
      class="ant-layout-header"
      style="height: 36px; line-height: 36px; background: transparent"
      v-if="fixedHeader"
    ></header>
    <div
      :style="{
        margin: '0',
        height: '36px',
        lineHeight: '36px',
        right: '0px',
        top: '48px',
        position: fixedHeader ? 'fixed' : 'unset',
        zIndex: 14,
        padding: '4px 16px',
        width: width,
        background: '#fff',
        boxShadow: '0 1px 4px #0015291f',
        transition: 'background 0.3s, width 0.2s',
      }"
    >
      tabRender fixedHeader:{{fixedHeader}} width:{{ width }} 
    </div>
  </div>
</template>
<template #footerRender="{ width, headerTheme }">
  <div>
    <footer class="ant-layout-footer" style="height: 36px; line-height: 36px; background: transparent"></footer>
    <div
      :style="{
        margin: '0',
        height: '36px',
        lineHeight: '36px',
        right: '0px',
        bottom: '0px',
        position: headerTheme == 'dark' ? 'fixed' : 'unset',
        zIndex: 14,
        padding: '4px 16px',
        width: width,
        background: '#fff',
        boxShadow: '0 1px 4px #0015291f',
        transition: 'background 0.3s, width 0.2s'
      }"
    >
      footerRender headerTheme:{{ headerTheme }} width:{{ width }}
    </div>
  </div>
</template>
<GlobalFooter
  :links="[
    { title: 'Link 1', href: '#' },
    { title: 'Link 2', href: '#' },
  ]"
  copyright="Pro Layout &copy; 2021 Sendya."
/>

使用水 Mark 软件

<router-view v-slot="{ Component }">
  <WaterMark content="Pro Layout">
    <component :is="Component" />
  </WaterMark>
</router-view>

构建项目

pnpm build # Build library and .d.ts

版本与发布记录

@ant-design-vue/pro-layout 共发布 118 个版本,首次发布于 2019/11/19;过去 12 个月发布了 0 个版本。

版本发布日期距今
3.2.5latest2023/10/223 年前
3.2.42023/06/023 年前
3.2.32022/07/224 年前
1.0.132022/05/304 年前
3.2.22022/04/244 年前
3.2.12022/04/204 年前

其他发布通道:next → 3.2.0-rc.5,beta → 3.2.0-rc.5,alpha → 3.2.0-rc.5,legacy → 1.0.12。

关于 @ant-design-vue/pro-layout 的常见问题

@ant-design-vue/pro-layout 是什么?

Vue的Ant Design Pro布局,易于使用亲脚手架.

如何安装 @ant-design-vue/pro-layout?

在项目目录运行 npm install @ant-design-vue/pro-layout,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:ant-design-vue(>=3.2.0)、vue(>=3.2.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@ant-design-vue/pro-layout 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@ant-design-vue/pro-layout 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@ant-design-vue/pro-layout 可以商用吗?

@ant-design-vue/pro-layout 使用 未声明 许可。package.json 没有声明许可证。没有许可证的代码默认保留全部权利,商用前请联系作者或查看仓库中的 LICENSE 文件。以上为概括,不构成法律意见,请以许可原文为准。

@ant-design-vue/pro-layout 的下载量有多少?

根据 npm 官方下载统计,@ant-design-vue/pro-layout 在 2026/10/06 – 2026/11/04 这 30 天内被下载 4,120 次,日均约 137 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@ant-design-vue/pro-layout 还在维护吗?

最新版本 3.2.5 发布于 2023/10/22(3 年前);至今共发布 118 个版本,其中过去 12 个月发布了 0 个;首次发布于 2019/11/19。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。