该库是针对 @mui 为基础的扩展库。
以现行常见的 React UI 库,经过我长期大量的观察,最终选定以 mui 作为基础,基于几个原因:
emotion.js
,不再用纠结 stylesheet,不用再纠结样式权重,className (裹脚布一样长)命名。mui
并不属于上手即可用的库(当然你可以这么用),他更接近于一个基础 UI 组件库,存在很大的定制空间。该库主要包含几个部分:
@mui-ext/core - 公共组件 & hooks
@mui-ext/hookform - react-hook-form@mui
@mui-ext/dataview - 复杂的数据表视图
React.XXXX
,而应该 import { XXXX } from 'react'
tsx
包含 jsx 语法块的文件,应该至少确保文件引用了 import React from 'react'
.d.ts
引入了不必要的类型)。重要:暂勿使用 '@mui/material/ComponentName'
的方式导入组件,rollup 打包部分有待优化。
在 projectA 中定义了 StyledA: StyledComponent
(projectA 声明了 emotion.js 的依赖)
在 projectB 中通过 tsconfig 或 webpack resolve 引入了 StyledA
,项目中可以正常使用这个组件,但是会出现 TS 的报错,诸如 TS2742: The inferred type of 'StyledA' cannot be named without a reference to ....
必须在 projectB 中,也包含对 emotion.js 的依赖(并确保正确安装),才能解除上述的错误。
{
"react": "^18",
"react-dom": "^18",
"react-is": "^18",
"@types/react": "^18",
"@types/react-dom": "^18",
"@types/react-is": "^17",
"clsx": "^1.2.1",
"csstype": "^3",
"@emotion/react": "^11",
"@emotion/styled": "^11",
"@mui/icons-material": "^5",
"@mui/material": "^5",
"@mui/styles": "^5",
"notistack": "^2"
}
@emotion/react
和 @emotion/styled
可选放入 devDependencies
@mui-ext/core 依赖 mui ,所以实际导出的内容未包含 @emotion
的引用(实际源码 or type 定义),但实际项目中仍旧需要安装(mui 的使用本身也要求如此)。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。