常见问题

Weex常见问题—通用篇

Weex 通用问题:Weex 项目后期是否有放弃维护的风险?

已捐献给 Apache 开源基金会,开源协议: http://www.apache.org/licenses/LICENSE-2.0

阿里集团内部大量适用,包括手淘、天猫等,效果显著,并逐渐增加大促时的 Weex 占比。

Weex 通用问题:除去 GitHub 网站讨论社区, QQ 群,官方是否提供其他问题咨询渠道? eg:官方邮箱等

https://weex.apache.org/cn/guide/contributing.html

Weex 通用问题:遇到 JS 无法调用 Native 方法的情况,如何排查?

可以看下 JS 方法调用 Native 所处的生命周期,比如如果在 created 方法中调用,在该方法中环境还没准备好 ,比如可以将 created 换为 mounted:http://dotwe.org/vue/88aa391e5964f01e53388e03991fd663

Weex 通用问题:本地 JS 文件缓存方案?

Weex 本身并没有提供 JS 文件本地缓存功能(在通过网络请求 JS 失败时降级到本地 JS,同时当通过网络加载 JS 文件后保存到本地),需要业务方自行实现。

Weex 通用问题:请求数据的时候需要做加解密,Weex SDK 好像没有提供相应的功能,这块需要如何解决?

Weex 本身没有提供数据加解密功能,这部分与业务相关性比较强,建议的使用方式是重写原生的网络请求适配器,然后在 Native 层进行数据加解密。

Weex 通用问题:为实现页面秒开需要对 JSBundle 进行本地缓存,Weex并没有提供相应的能力,这部分有解决方案吗

Weex SDK 没有对 JSBundle 进行加解密,需要自行实现。这部分在阿里内部有比较好的解决方案——ZCache,会集成到 EMAS 中对外输出。

Weex 通用问题:可以在一个页面下嵌入多个 Weex 页面吗?

可以的,Weex 本身并不要求需要接入限制显示方式,一个页面中也可以多个 Weex 页面,不过需要维护 Weex 页面与实例之间的关系。

Weex 通用问题:Weex 与 React Native 优势和劣势是什么?

优势:

  • 许可证:Weex使用 Apache 2.0,Reactive Native 使用 BSD + Patent,使用 Reactive Native 存在潜在许可证风险。
  • Weex 上层 DSL 支持 Vue.js 与 React 两种写法,其中 Vue.js 原生支持,React 通过引入 Rax 支持; Reactive Native 仅支持 React 写法。
  • Weex 具备 100% 跨端能力,在 iOS 和 Android 上的代码完全一致; Reactive Native 仅具备 85% 左右的双端代码共享能力,用户的 JS 代码有一部分需要区分 iOS 及 Android 平台特性。
  • Weex 的渲染性能尤其是低端机上的渲染性能优于 Reactive Native,90% 的页面可以实现秒开,低端机上 FPS 可以达到 50 帧以上,同样页面结构下的内存开销要表现比 Reactive Native 要好,使用了 Cell 可回收的列表实现了内存优化等。
  • Weex 可通过 EMAS 商业产品提供商业产品级的专家技术支持服务与研发支撑体系服务(开发工具、组件库、监控等); Reactive Native 只能获得社区级支持。
  • Weex 经历过两次双十一大考,在阿里电商体系内承担核心业务研发支撑工作,表现稳定,且已成为阿里集团移动应用开发的主要方式; Reactive Native 目前还没有案例证明可以经历 Weex 这样的超级规模的应用考验。

劣势:

  • Reactive Native 的上层生态基于 React,有较为丰富的组件库
  • Reactive Native 的知名度及社区活跃度比 Weex 高。主要是因为 Weex 业务属性太强,团队的主要工作都集中在满足内部研发需求上,之前并没有太发力社区工作。后面会逐步实现内外一体化,以社区工作为研发流程的基础。
  • Reactive Native 有比较完善的App级框架支持。目前 Weex 正在做。
  • Reactive Native 的组件写法更 Native 化,比较符合移动应用开发者的开发习惯

Weex通用问题:如何快速Weex插件?

可参考文档:create a Weex plugin