前言
先抛出问题 iOS 真的不行了吗?
苹果爸爸得治一治这些抢饭碗的-。-
开个玩笑,回归正题。本文开始将使用Weex从无到有开发一款完整的上线应用。
为什么有Weex和ReactNative
不讨论公司开发成本。
客户端需要频繁更新,iOS更新时间还要受到审核的牵制;iOS、Android和前端同时开发同一个需求,Hybrid的性能和Native相比又差了一点。
像Weex和ReactNavtive这般让移动开发者通过简捷的前端(weex使用的Vue全家桶,ReactNative使用的React全家桶)语法写出Native级别的性能体验,并支持iOS、安卓、YunOS及Web等多端部署的新技术必然出现。
Weex和ReactNative对比
是现有的ReactNative,所以Weex从一开始就站在先驱者的基础上。但是Weex也从一开始就被开发者弄成“哥俩”
支持平台
ReactNative标语:“Learn once, write anywhere”,
Week标语:“Write Once, Run Everywhere”。
Weex从最开始,就要支持更多的平台。
ReactNative可以支持iOS、Android,而Weex可以支持iOS、Android、HTML5。
开发成本
与 Web App、HTML5 App 或 hybrid App 不同,可以使用 Weex 构建一个真正的原生应用。更贴心的是你的代码只需使用 HTML、CSS、JavaScript 可以构建原生应用,上手非常简单。但实际上,应用的底层是 Objective-C 或 Java, 同时,Weex 提供很多 native 组件或模块供开发人员使用。
ReactNative同样可以解决性能问题,但它使用了JSX来书写。
Weex更轻快,ReactNative官方只允许将ReactNative基础js库和业务JS一起打成一个JS bundle,没有提供分包的功能,所以如果想节约流量就必须制作分包打包工具。而Weex默认打的JS bundle只包含业务JS代码,体积小很多,基础JS库包含在Weex SDK中,这一点Weex与Facebook的React Native和微软的Cordova相比,Weex更加轻量,体积小巧。把Weex生成的JS bundle轻松部署到服务器端,然后Push到客户端,或者客户端请求新的资源即可完成发布。如此快速的迭代就解决了前言里面说的,无法进行快速的便捷更新,
扩展性
两者都支持横向扩展(native组件和API),这样开发中就可以更好地去中心化,灵活定制组件,模块。
性能
相对来说Weex更加关注性能。
在各平台上列表视图iOS端为tableView,Android是recycler view,而ReactNative目前使用的是ScrollView。
只总结一小部分,详尽对比看这位同学的知乎。
工作原理
Weex 是一个动态化的高扩展跨平台解决方案。 在 Weex 代码中,您可以使用 ,