使用方式
安装
需 React 版本 ≥ 18。
运行环境
- 面向浏览器运行,不支持服务端渲染(SSR):浮层组件(
Popup、Dropdown一类菜单、工具栏弹出面板)在 render 期解析 portal 容器并createPortal,服务端没有document时直接抛错。用 Next.js 一类同构框架时,把这些组件挡在服务端渲染树之外,或仅在客户端挂载后再渲染。 - 同时提供 ESM 与 CJS 两份产物,二者是独立模块实例:Node 进程内混用
import与require加载时,语言消息注册表与OOUIProvidercontext 互不共享;浏览器打包场景不受影响。
在非MediaWiki站点使用时(真有人用吗),样式需自行引入 OOUI 的主题 CSS 与 Codex 设计令牌表(oojs-ui 0.54 起令牌表须一并引入)。主题 CSS 按需选用其一:wikimediaui 为当前默认,apex 为遗留主题(两主题下部分状态的观感不同,本组件库输出对两者均有效):
OOUI 主题的尺寸以 MediaWiki 的正文基准字号 14px 为准,宿主页面应保持一致。
Tip
本站导航栏提供「示例主题」切换器,可在 wikimediaui 与 apex 下预览全部实时示例;组件库本身不自带样式,切到哪个主题即还原哪个主题下的观感。
在 MediaWiki 站点使用
本组件库开发的初衷就是用于 MediaWiki 站点的用户小工具。如果对产物体积较为敏感,建议使用 Preact 兼容层代替完整的 React。
使用示例可见我的萌娘百科工具仓库:
声明依赖
MediaWiki 站点的 OOUI 样式由其内置的 oojs-ui 资源模块提供,运行时通过 mw.loader.using 或小工具的 ResourceLoader 定义里引入:
其中图标组的组名见图标索引里的分组。
挂载
建议渲染到 div 或 DocumentFragment 元素,然后插到锚点前后:
Preact 兼容
本库可在 Preact 兼容层(preact/compat)下运行,映射方法参考官方指南。
- 版本门槛 Preact ≥ 10.18。
react-dom/client须映射到preact/compat/client,缺失时命令式 API(confirm / alert / prompt)会缺失createRoot而报错。