QReact

QReact 是去哪儿网推出一个迷你 React 框架,让 React 在业务线上更具通用价值。众所周知,React 一直存在体积过大的诟病,集成了许多在线上环境不需要功能。YMFE 团队在熟读其源码的基础上,去芜存精,重新实现了 React 所有公开接口,体积只有 React 的约三分之一,从而解决它在移动端上加载过慢的问题。由于没有使用高级 API,因此只需在 webpack / uglify 上修改配置,便能运用于 IE8 上,从而解决 PC 端同学无法在 IE 8 下使用 React 的问题。

对比 preact/react-lite,QReact 的优势在于事件系统更为完善,更具扩展性。像 mouseenter/mouseleave,focus/blur 等不冒泡的事件,preact 存在暇疵。

QReact 也实现了官方 react/lib 下的许多模块,这些模块可能被 RN 引用,这也为 QReact 支持三端合一的 QRN-WEB 做技术支撑。

  • QReact 与 React 完全兼容,具有高度一致的 API 和行为。

  • QReact 包含了 reactreact-dom 的全部功能,同时有着更小的体积,QReact@2.1.5 的体积为(minified: 34.71KB gzipped : 12.95KB),作为对比, react@16.2.0 + react-dom@16.2.0 的体积则大了很多(minified: 5.1KB + 88.7KB = 93.8KB gzipped: 2.2KB + 28.3KB = 30.5KB)。

  • QReact 支持 IE 6 - IE 8,详细信息请参见在低版本 IE 下使用”。

  • 为了减小体积 没有 实现 React.PropTypes,但这并不意味着代码中使用了 PropTypes 就会报错,只是不起作用而已。