2
头图

ONES 开放平台提供了一种强大的机制——插槽,使得开发者可以轻松地在 ONES 平台上实现高度定制化的功能扩展。本文将详细介绍如何使用插槽,并通过一个具体的案例来展示其实际应用。

什么是插槽?

插槽允许开发者在 ONES 系统的导航系统或页面元素中添加、隐藏或替换自定义内容。这些占位符为开发者提供了灵活的接口,可以在不修改核心代码的情况下扩展系统的功能。插槽主要分为三种类型:

导航系统插槽:最常见,用于在 ONES 的导航系统中新增插件页面。
全局插槽:作用于整个系统,如顶部公告栏、进度管理器等。
模块插槽:用于在应用的功能界面里新增交互元素,比如按钮或卡片。

如何添加插槽

步骤一:选择插槽模块
首先,在插件工程根目录下执行以下命令以添加新的插槽模块:

npx op add module
这将启动一个交互式流程,让你从多种模块类型中选择适合你需求的插槽模块。例如,你可以选择 ones:desk, ones:manhour, ones:performance 等。

步骤二:编写逻辑和样式
每个插槽模块的逻辑代码都存放在 /web/src/modules/ 目录下的对应模块ID命名的目录中。例如,如果你添加了一个名为 ones-global-banner 的模块,那么它的代码将会位于 /web/src/modules/ones-global-banner/ 目录下。

样式代码也存储在同一目录下的 index.css 文件中。默认情况下,该文件提供了一些基础配置,并支持 PostCSS 预处理器功能(如 autoprefixer 和 cssnano),帮助简化样式开发过程。

案例:创建一个自定义公告栏
假设我们需要在 ONES 系统中添加一个全局公告栏,用于显示重要通知和消息。

实现步骤

  1. 添加插槽模块 在插件工程根目录下执行:
    npx op add module
    选择 ones:global:banner 模块类型。
  2. 编写逻辑代码 在 /web/src/modules/ones-global-banner/index.tsx 中编写逻辑代码,如下所示:

    
    import { ConfigProvider } from '@ones-design/core';
    import React from 'react';
    import ReactDOM from 'react-dom';
    import './index.css';
    
    const Banner = () => (
      <div className="mf-bar-banner">
     <p>欢迎使用我们的新功能!</p>
      </div>
    );
    
    ReactDOM.render(
      <ConfigProvider>
     <Banner />
      </ConfigProvider>,
      document.getElementById('ones-mf-root'),
    );
  3. 编写样式代码 在同一目录下的 index.css 文件中添加样式:

    .mf-bar-banner {
      width: 100%;
      height: 40px;
      background-color: #f8d7da;
      color: #721c24;
      text-align: center;
      padding-top: 10px;
    }
  4. 测试插件 执行以下命令运行插件并查看效果:
    npx op invoke run

结果
现在,当你访问 ONES 系统时,应该能看到顶部有一个红色背景的横幅,上面写着“欢迎使用我们的新功能!”这样的提示信息。这个简单的例子展示了如何利用插槽快速添加自定义UI组件,满足特定业务需求。

总结
通过 ONES 提供的插槽机制,开发者能够非常方便地对系统进行定制化扩展。无论是添加一个新的导航菜单,还是在现有页面上嵌入额外的交互元素,都可以通过这种方式高效实现。希望本文能为你提供有价值的参考,帮助你在 ONES 平台上构建更加个性化和强大的应用程序。

参考链接:ONES 开放平台文档


ONES开放平台
228 声望62 粉丝

ONES插件开发者社区