当前位置:首页 > React

umi是如何暴露react

2026-02-12 10:03:04React

umi 暴露 React 的方法

umi 是基于 React 的框架,默认情况下 React 是作为项目依赖的一部分。如果需要全局暴露 React(例如在微前端场景中),可以通过以下方式实现:

修改配置暴露 React

config/config.ts.umirc.ts 中配置 externals,将 React 和 ReactDOM 设置为外部依赖:

export default {
  externals: {
    react: 'window.React',
    'react-dom': 'window.ReactDOM',
  },
};

通过 HTML 模板注入 CDN

src/pages/document.ejs 或公共 HTML 模板中添加 CDN 链接,确保 React 和 ReactDOM 在全局可用:

<script crossorigin src="https://unpkg.com/react@18/umd/react.production.min.js"></script>
<script crossorigin src="https://unpkg.com/react-dom@18/umd/react-dom.production.min.js"></script>

验证暴露是否成功

在项目中直接使用 window.Reactwindow.ReactDOM,确保能正常访问。例如在控制台打印:

console.log(window.React);

动态加载场景的处理

如果项目需要动态加载 React(如按需加载),可以通过 runtimePublicPath 配置结合 CDN 动态加载:

export default {
  runtimePublicPath: true,
};

注意事项

  • 暴露 React 后,需确保项目中不再打包 React,否则会导致重复加载。
  • 微前端场景下,主应用和子应用需统一 React 版本,避免冲突。
  • 生产环境建议使用稳定的 CDN 地址,避免版本不一致问题。

umi是如何暴露react

标签: umireact
分享给朋友:

相关文章

react中monent如何获取日期

react中monent如何获取日期

使用 Moment.js 获取日期 在 React 项目中,可以通过 Moment.js 库轻松处理日期和时间。以下是几种常见的日期获取方法。 安装 Moment.js 确保项目中已安装 Momen…

如何改造react

如何改造react

改造 React 项目的关键方法 分析当前项目结构 通过评估现有组件、状态管理和依赖项,明确需要改进的部分。使用工具如 webpack-bundle-analyzer 识别性能瓶颈。 升级 Reac…

react 如何分页

react 如何分页

分页实现方法 在React中实现分页功能可以通过多种方式完成,具体取决于数据来源(如API或本地数据)和UI库的选择。以下是常见的实现方法: 使用本地数据分页 对于存储在组件状态或Context中…

react如何diff

react如何diff

React Diff 算法原理 React 的 Diff 算法是 Virtual DOM 的核心部分,用于高效更新真实 DOM。其核心思想是通过对比新旧 Virtual DOM 树的差异,最小化 DO…

react如何encode

react如何encode

React 中编码的实现方式 在 React 中,编码通常涉及对 URL、HTML 实体或特殊字符的处理。以下是几种常见的编码方法: 使用 encodeURIComponent 进行 URL 编码…

react如何动画

react如何动画

React 动画实现方法 React 中实现动画可以通过多种方式,包括原生 CSS、第三方库或 React 内置的动画解决方案。以下是几种常见方法: 使用 CSS 动画和过渡 通过 CSS 的 t…