由于平台的差异性,真正意义上的一套代码同时可以运行在三端是不存在的。这里说的三端融合是借助webpack打包工具来进行web端代码的打包,从而实现代码可以运行在三端。当然如果想减少工作量,是可以借助其他的开源工具的,比如阿里的react-web,但是它的star数不是很多,所以笔者并没有针对阿里的react-web进行实践,下面来说说实现三端融合的两种方式:
1.结合redux机制实现纯结合react写法。源码地址在这里。
大体思路如下: 1.对于Android和IOS端采用React-Native本身的处理机制来进行判断 2.对于Web端,利用webpack打包功能将代码打包 3.状态管理用统一机制-redux进行管理
运行过程: npm isntall npm run web-dev // 打开3001端口项目运行在浏览器上
react-native run-android(run-ios) // 项目即可运行在对应手机平台上
2.利用react-native-web(代替react-web)。源码地址在这里。
这个demo的实现相对来说比较简单,只是大致提到了如何区分不同平台的组件,它的优势在于部分的组件是三端可以共用的。
这两个demo都没有利用针对ios进行处理。只是在针对web以及手机进行了处理。
欢迎大家一起交流~