OOUI 对照
ooui-react 按 OOUI 的交互语义与 DOM 结构重新实现,样式直接复用原版主题 CSS,但 API 是地道的 React 形态。
无论你熟悉 OOUI、想照着原有的使用经验写新脚本,还是要重写旧的复杂脚本,本页都给出两套 API 的对应关系:先看概念映射,再按原版类名找到对应组件,最后核对能力舍弃与行为差异。
概念映射
原版的命令式 API 在本工程统一改写为声明式 props,规则详见受控与非受控:
组件寻址与类映射
组件名 = 原版类名去掉 Widget 后缀(ButtonWidget → Button、TextInputWidget → TextInput)。有几个组件名去掉后缀后不成立,保留原样:SearchWidget、HiddenInputWidget、SelectFileInputWidget、ButtonMenuSelectWidget。
原版里一些类不对应独立组件,处理方式如下:
能力舍弃清单
以下原版能力本工程有意不做,按原版 API 名检索:
行为差异速查
以下是使用行为会与原版不同、且不调整就会出错或与预期相反的差异,按组件速查。各组件页有对应细节:
命令式弹窗
confirm / alert / prompt 是独立函数,从任意事件回调里 await 即可,弹窗自动继承所在 OOUIProvider 的配置(文案、isMobile、dir 及应用自有 Provider)。与原版共用单例管理器不同,本工程重复调用会层叠显示;返回值与运行时语义见命令式弹窗,配置继承见全局配置。
多语言
en 为内建默认基线,另提供 222 种语言包(ooui-react/locales/<代码>)按需引入;MediaWiki 站点可直接把 mw.msg 接进 messages 跟随站点语言。语言清单与接入方式见文案与国际化。
完整差异清单
本页只列影响使用的差异。与原版的全部差异(含实现层取舍与论证)见仓库的 dev-docs/DEVIATIONS.md。