插件

旨在满足在二次开发中的自定义功能,同时又不需要修改 needle 的核心代码

安装与使用

在 Needle 仓库中包含了大量基础插件,只需要通过 npm 安装即可使用
例如使用 Login 插件

# 安装插件
npm install @hvisions/plugin-default-login
// 引入插件
import loginPlugin from '@hvisions/plugin-default-login';
import Core from '@hvisions/core';
// 使用插件
Core.plugin(loginPlugin);

插件开发

install([options])

插件的注册方法

参数名 说明 类型 默认值 必须 版本
options 配置参数,包含 core 实例对象 any - - -

方法返回值可包含属性如表

参数名 说明 类型 默认值 必须 版本
router 路由配置列表 Array<NeedleRouter> - - -
store redux reducer Reducer - - -
locale 国际化 Object - - -

type

定义插件种类, 支持 layout, login,不设置即为普通插件

getLoginComponent([options])

声明 Login 页面的 UI (仅当 type 是 login 时有效)

参数名 说明 类型 默认值 必须 版本
options 配置参数,包含 core 实例对象 any - - -

options 包含属性

参数名 说明 类型 默认值 必须 版本
core core 实例对象 any - - -
config 该插件的全局配置 any - - -
loginComplete 登录成功后的回调方法 (token: string, authData: any) => void - - -

方法返回值为 ReactNode (路由页面的展示UI)

getLayoutComponent([options])

声明 Layout 页面的 UI (仅当 type 是 layout 时有效)

参数名 说明 类型 默认值 必须 版本
options 配置参数,包含 core 实例对象 any - - -

options 包含属性

参数名 说明 类型 默认值 必须 版本
core core 实例对象 any - - -
config 该插件的全局配置 any - - -
extraComponents 系统顶部条可配置的额外内容 Array - - -
routers 路由表 Array<NeedleRouter> - - -
routeView 路由页面展示内容 React.ReactNode - - -
logoutComplete 登出成功后的回调方法 () => void - - -

方法返回值为 ReactNode (Layout布局页面的展示UI)

layoutExtraComponents([options])

声明 Layout 布局中的额外显示内容

参数名 说明 类型 默认值 必须 版本
options 配置参数,包含 core 实例对象 any - - -

options 包含属性

参数名 说明 类型 默认值 必须 版本
core core 实例对象 any - - -

返回值 Array<{ type: string; index: number; component: ReactNode; }>

eventHandler(e, [options])

事件钩子处理

参数名 说明 类型 默认值 必须 版本
e 事件对象 EventEmitter - -
options 配置参数,包含 core 实例对象 any - - -

使用方法

function eventHandler(e) {
  e.on('sysEntered', someHandler);
}
2022-08-10
0