之前公司开发用react做了线上平台,仓促选型,使用react16进行开发,兼容性和架构问题上遇到了一些坑,特此做一个总结,防止日后遇到相同问题。
1.IE11
最新版react对于IE11的兼容性还是可以的,基本可以在正常引入babel-polyfill,babel-preset-stage0,babel-es2015,babel-react后,基本可以正常在IE11下运行。
2.IE10以下
这里对于最新版的react16基本就不要考虑了,react16用到了es6的Map对象,这一点IE10以下是不支持的,而且目前Map方法也没有办法兼容处理,所以如果选择react16开发的话,IE10以下就不要考虑了。
3.react-router4.0
配合react16开发,选择了最新的react-router4做开发,最新版react-router的开发理念有了很大的转变,react-router-dom的路由需要在各个配置页面下配置,不能在一个页面中做整体的树状结构配置,这一点相对比较麻烦,懒加载方面查了一些文章,需要配合bundle-loader封装一个相应的组件,同时需要注意网上的很多写法子组件是无法读取到router的props属性的,所以在调用时,需要将router的props在组件中传递一下。