做移动应用,同时适配ios、android、微信。寻找、试验、思考……几天内几经周折,我们最终决定使用react-native&antd-mobile来达到我们的目的。想法与选择搜索Internet并查看各种解决方案。第一种是使用redux共享业务逻辑,维护两套UI组件;二是先用react-native-web写好移动端,再把移动端转成H5;三是使用styled-components来封装UI组件,还要维护两套UI;第四:使用antd-mobile适配三端。最终还是决定选择antd-mobile方式,因为它本身就是一个很好的方案,文档齐全,实现简单。虽然有两套代码,但是已有的组件已经很多,扩展也很容易。我已经修复了一个小bug,发布到npm,并在项目中替换,这样可以快速方便的实现我想要的组件。代码编写原则所有界面元素均使用antd-mobile组件实现。如果不够或者不符合要求,直接修改antd-mobile。关键一步是在webpack2中配置antd-mobile支持H5,在webpack中配置,打包web版的代码。importantd-mobile{test:/\.(js|jsx)$/,exclude:/node_modules/,use:[{loader:'babel-loader',options:{presets:['es2015',"stage-2",'react'],plugins:[["transform-runtime"],["import",{libraryName:"antdm",style:true}]],}}],},resolveweb.*resolve:{mainFiles:["index.web","index"],//这里是modules:['app','node_modules',path.join(__dirname,'../node_modules')],extensions:['.web.tsx','.web.ts','.web.jsx','.web.js','.ts','.tsx','.js','.jsx','.react.js',],mainFields:['browser','jsnext:main','main',],},LayoutComponentsantd-mobile文档中只提到了复杂的组件,但是我们在H5中经常使用div和native,应该如何查看中处理?查看文档和搜索,我没有找到我想要的方法;我在github上看了别人回家代码,发现直接使用div或者原生View,无法同时适配三个终端,所以一度想引入styled-components进行封装,但总觉得引入styled-components只是用来处理一些基本元素。不值得。最后记得看antd-mobile的源码,在antd-mobile中引入了styled-components。这还不行吗?原来antd-mobile已经打包好了,也就是View。问题基本解决,但是运行时会出现如下警告信息:Warning:Unknownprop`Component`on
