先说结论,本人极度非常
不推荐weex作为任何商用开发
有很多人会说了... 你瞎扯.. 你看别人阿里.. 啊飞猪... 啊那个支付宝... 人家不是用得好好的么...
当然这也是我们公司作为技术选型的考量.. 三端通用.. 阿里系的app全线在用.. 理论上是可以实现的.. 而且我们在编码过程中.. 可以把IOS工程师,安卓工程师和前端工程师以及部分熟悉一点前端的后端工程师都拉过来贡献一套代码.. 代码质量可以得到保障
现在想想只能说... 太天真了... 你也不想想人家阿里有多少大牛有多少人在做这个项目.. 再说淘宝都卡成啥样了大家还是愿意用.. 如果你的项目这样卡两下你的app是否还能像淘宝那样拉住顾客??
这就像你说你想写一篇巨著... 你打算用英文写... 翻译成中文 俄文 日文(ios android web)... 让人看了还能把别人国家的感动得稀里哗啦的.. 本身难度就会不小..
另外你在android中打开布局边界看一下天猫飞猪... 里面weex的界面已经只剩下很少的界面了.. 很多界面已经替换成了原生或者webview的混合界面... 做得那么杂用户体验还过得去.. 我只能说一句.. 阿里牛逼=.= ... 所以很明显的一个信息就是.. 这个技术连他们自己人都不广泛使用了.. 可见还是有很大的局限性的..
而且随着项目持续增大.. weex项目的编译时间会呈指数型上升.. 这样的编码体验.. 说糟糕都是在侮辱糟糕这个词... 所以也请大家慎重考虑
如果你们已经决定使用weex.. 或者正准备用它构建三端应用... 那么.. 希望我的踩坑指南可以帮到你.. 从入门到放弃...
一.开始准备
首先根据官网的提示安装node.js weex-toolkit 然后就可以开始创建项目了.. 你可以选择RN的rex 或者前端的VUE模式写代码都是可以的.. 但是我们用的是vue.. rex也考虑过.. 只是没人会写RN.. 加上网上weex+RN的例子很少.. 所以就放弃了..
如果是在windows上的话.. 安装的东西都是需要配置环境变量的...
D:\nodeJs\npm;D:\nodeJs\node.exe;C:\Users\jupiter\AppData\Roaming\npm;C:\Users\jupiter\AppData\Roaming\npm\node_modules\weex-toolkit\bin\weex.js;C:\Users\jupiter\AppData\Roaming\npm\node_modules\weexpack\bin\weexpack.js;C:\Users\jupiter\AppData\Roaming\npm\node_modules\weex-toolkit\node_modules\weex-previewer\vue-template\template\assets\vue.js
分享一下我的环境变量里的东西.. node weex npm这些是必须要配置进去的... 如果不配置的都是用不了的.. jupiter是我windows的用户名 其他的大家自己看一下它给安装到什么路径下了.. 尤其是weex和weexpack是默认的一个路径 层级还很深.. 仔细找找配置进去..
另外推荐个飞猪开源的UI框架 weex-ui
总体来说这个UI框架还是能帮上一些忙的.. 但是里面本身就有些问题.. 比如其中utils中的getPageHeight的高度.. 在web上是对的.. 但是手机上... emmmm... 会少一些高度.. 大约是88px... 原因不明.. 可能是android里面使用的默认的toolbar... 但是他自动帮你减掉了.. 但实际上没有toolbar.. 这个高度就少了..
二.开始踩坑
至于如何写vue代码或者简单的helloworld.. 百度上都能查到... 我就不再赘述了.. 这里只说些百度不到的坑或者旧坑解决方法已经无效的问题.. 如果你觉得你会写vue到此就万事大吉了要开始构建三端应用了... 那么我得先给你泼一盆冷水了... 大哥.. 你跳个界面给我看下..
1.界面跳转
你会说:切 不就跳界面么.. 看我一手startActivi... vi...
vi你个头..
在这里的跳转需要使用navigator 去实现.. 原理上这个东西是做了各端的特殊处理的.. 在web上比较像vue router.. 也就是单页跳转.. 而在android上则是通过隐式去拦截对应的url类型.. 如果是http和https开头的.. 会用webview去打开.. 如果是files开头的... 呵呵.. 你就发现它没动静了...
这里再吐槽一手weex不适合商用的原因... 完全没有社区... 这是最骚的... 所以遇到很多问题只能自己去看源码或者百度... 而且百度好多东西都是基于旧版本的.. 你用上就发现.. 写得什么玩意 根本没效果嘛..