SuperAPI AI 工具集

expo-use-dom-v55

通用与其它

查看项目

更新于 10-15 17:27

技能介绍

用途:DOM Components 让 Web 代码在原生平台放进 webview 逐字运行,在 Web 平台则原样渲染,从而在 Expo 应用中直接使用依赖 DOM 的 Web 库,并渐进式迁移已有 React Web 组件。

主要能力:可运行 recharts、chart.js、react-syntax-highlighter 等 Web 专用库,支持复杂 HTML/CSS 布局、iframe/嵌入内容以及 Canvas、WebGL;在原生父组件中把异步函数作为 props 传入以调用原生能力;支持 expo-router 的 Link 与 router API,可用 IS_DOM 判断运行环境,支持样式与资源引入。

使用方式:在独立文件顶部写 'use dom';,文件只能有一个默认导出、不能内联定义、不能与原生组件合并,props 必须可序列化,CSS 需写在组件文件内。每个 DOM 组件会收到 dom prop(import("expo/dom").DOMProps),用于配置 webview,如 scrollEnabled、contentInsetAdjustmentBehavior、style 等;在 Web 端该 prop 被忽略。

适用场景:需要 Web 专有库、迁移已有 Web 代码、使用 CSS 特性或嵌入浏览器内容时。

限制:原生性能关键或界面简单时不宜使用;_layout 文件不能作为 DOM 组件;webview 有独立 JavaScript 上下文,无法与原生直接共享状态;useLocalSearchParams、useGlobalSearchParams、usePathname、useSegments、useRootNavigation、useRootNavigationState 等需在原生父组件读取后以 props 传入;大型 DOM 组件可能影响性能,需跨平台测试。资料未提供安装命令与收费信息。