如何编写一个插件用来实现一个全局组件? #2066
Replies: 3 comments
-
可以把组件写成 dumi 主题,在需要的项目中安装使用 主题加载dumi 的主题系统中,一共有 3 种主题加载的来源,优先级从低到高分别是: 内置的默认主题包,通过 dumi/theme-default/xx 可以访问到默认主题的产物 |
Beta Was this translation helpful? Give feedback.
-
如果只加一个全局组件的话新建主题包有点重,插件可以使用 api.modifyTheme 修改 builtins 增加全局组件:https://d.umijs.org/plugin/api#modifytheme |
Beta Was this translation helpful? Give feedback.
-
能举个例子吗? 我的设想,如果要使用
import { IApi } from 'dumi';
export default (api: IApi) => {
//@ts-ignore
api.modifyTheme((memo:any) => {
memo.builtins['LiteTree'] = {
source: '@lite-tree/react',
specifier: '{ LiteTree }'
}
});
} 但是无效,会提示 另外,使用 |
Beta Was this translation helpful? Give feedback.
-
前言
dumi
用来编写React
组件库非常棒,我用来制作了SpeedForm的官网.我发现
dumi
内置的树组件虽然比较实用,但是形式比较单一,并且声明树结构时需要使用大量冗余的ul/li
,虽说有降级显示考量,但是在官网中我还是需要更具表现力和更方便的树组件呈现,所以开发lite-treelite-tree
包含@lite-tree/react
和@lite-tree/vue
两个包,分别用在React
和Vue
场景下,其最大的特点在编写md
文件时能更方便地声明树结构,如下:lite-tree
除了支持解析json
,还自定义了一种采用缩进的格式来声明树。并且丰富的特性,如显示diff
,自定节点样式,节点图标自定义等。显示效果如下:
问题
目前使用全局组件官方推荐方式是在
.dumi/theme/builtins/
创建组件,如果是第三方组件还得再重导出一次,我希望能编写一个插件需要在theme里面创建组件,然后使用时在
.dumirc.ts.
中配置,按照插件API文档,我的
dumi-plugin-lite-tree
的代码是这样的:我想是在
render
前导入{ LiteTree }
组件,但不能生效,提示LiteTree not defined
希望能得到指点,能否在现有插件API下实现安装插件后自动注册一个
LiteTree
的全局组件,谢谢Beta Was this translation helpful? Give feedback.
All reactions