UNPKG

iframe-micro-react-state

Version:

基于 iframe 的微应用状态管理与父应用通信工具,仅面向 React 项目生态。

73 lines (47 loc) 2.05 kB
# iframe-micro-react-state 微前端代替方案,适用于子包数据初始化 --- ## 简介 这个包专为 React 项目的 iframe 子页面设计,帮你极简同步父页面下发的初始化数据。只需一行代码,自动监听、自动更新,类型安全,免去手写 postMessage 监听和状态管理的繁琐。 - 适合微前端架构下的子应用数据初始化 - 只做一件事:让你在 React 里随时拿到父页面传过来的数据 - 默认内存单例,页面刷新/iframe 重载后由父页面自动下发,无需持久化 --- ## 快速开始 ```typescript import { useMicroAppState } from 'iframe-micro-react-state'; export default function MyMicroApp() { const state = useMicroAppState(); if (!state?.initialized) return <div>加载中...</div>; return <pre>{JSON.stringify(state.data, null, 2)}</pre>; } ``` --- ## 权限检查 父应用初始化时会传 authorityList(二维数组),你可以用 Hook 直接判断权限: ```tsx import { useAuthorityChecker } from 'iframe-micro-react-state'; export default function MyComponent() { // 会自动读取父级传来的 authorityList const hasPerm = useAuthorityChecker('A'); // 检查单个权限 const hasAnyPerm = useAuthorityChecker(['A', 'C']); // 检查多个权限 return <div>{hasPerm ? '有权限' : '无权限'}</div>; } ``` --- ## 常见问题 **Q: 需要自己写 postMessage 监听吗?** A: 不用,Hook 已经自动帮你监听和解绑了。 **Q: 页面刷新后数据会丢吗?** A: 会,但这正是微前端场景的推荐做法。父页面每次都会重新下发数据。 **Q: 支持非 React 项目吗?** A: 不支持,只为 React 场景设计。 **Q: 包体积大吗?能 tree-shaking 吗?** A: 产物极小,只导出核心 Hook 和类型,支持 tree-shaking。 --- ## 依赖说明 - 需要 React 17 及以上版本(peerDependencies: react, react-dom) - 类型安全依赖 @types/react --- ## License MIT