⚠️ 注意事项

  • 如果需要判断当前使用的是否是 QReact,可以通过 React.eventSystem 或者 ReactDOM.eventSystem 来判断。由于官方没有提供该对象,所以只要该属性存在,就是 QReact。

  • QReact 使用了一部分 ES6 的 API,所以如果需要在旧版浏览器中运行的话,需要自行 polyfill,通常的方法是在项目入口文件引入 babel-polyfill 或者在 ykitwebpack 的打包配置中将 babel-polyfill 加入 entry 中。

  • 如果项目中使用了 react-addons-css-transition-group,请使用 react-transition-group/CSSTransitionGroup 代替(React v15 请使用 v1 版本,React v16 请使用 v2 版本),因为 react-addons-css-transition-group 是直接导出的 react/lib/ReactCSSTransitionGroup,而 QReact 并没有提供这个文件,所以需要使用 react-transition-group/CSSTransitionGroup 替换掉。实际上新版 React 也不再提供这个文件了。

  • 如果在项目中用到了 requestAnimationFrame,需要引入 request-animation-frame-polyfill,否则会报错。

  • 请仔细阅读配置中的别名说明,比如 yo 项目请务必加上 react-tap-event-plugin 的别名。

  • 如果在 yo 项目中用到了 ykitdll,则需要将 ykit-config-yo 升级至 3.7.0 或以上版本,在此之前的版本若将 React 替换 为 QReact 会出现找不到 React 的错误。

  • 如果项目使用了 yo-router,则请务必使用 1.2.1 及以上版本,在此之前的版本可能会出现错误。

  • 如果项目使用了 ykit 的 dll 功能,则在从 React 切换至 QReact 之后请务必先执行一次 ykit dll 并重启 ykit server,否则 ykit 的 dll 中保留的还是官方的 React,会导致错误。

  • 如果需要在 IE 8 下支持 webpack 的 hot reload 功能,需要在 script 标签中于所有 webpack 代码之前引入 es5-shimes5-sham,因为 webpack 的 hot reload 使用了 ES5 的一些特性,需要提前 polyfill。

  • 调试建议:由于 IE 8 及以下浏览器性能很差,如果有很多的日志输出的话,浏览器很容易卡死,因此建议限制一下日志输出的数量,可以通过劫持 console.log 的方式来限制日志的数量。