最近在看weex,所以去网上查了一些关于weex的资料,这款由全球移动技术大会联席主席、手淘技术老大庄卓然(花名南天)在Keynote上宣布的跨平台开发框架在6月的时候已经开源,现在和小伙伴一起了解一下。
Weex基本信息
官方支持iOS、Android、HTML5.
Write Once, Run Everywhere。一次编写可生成三平台代码。
DSL模板学习超简单,直接写HTML、CSS、JS。这意味着可以直接用现有编辑器和IDE的代码补全、提示、检查等功能。
轻量级、可扩展、高性能。
集成花样多,可在HTML5页面嵌入,也可嵌在原生UI中。
Weex的由来
Weex的前身是WeApp,一个用JSON配置原生UI组件来实现动态化的框架,关于类似这个的思想,可以在天猫这篇配置中心实践中看到,已经很牛了,Weex是WeApp的进化版本,加上ex去掉App,就成了现在这个名字。他们还编了个段子:
You give us a few weeks, so we bring you a weex.
为什么不用React Native
手淘和天猫曾经尝试过React Native,然后放弃了。但是把它的思想吸收过来,结合Web Component和Vue.js,然后就成了Weex.
关于这个问题,庄卓然列举了一些原因:
因为手淘之前有WeApp,从WeApp进化到Weex是很自然的选择,抛弃自己的解决方案去用别人的反而很奇怪。
React Native的JSX、CSS in JS写法都很别扭,淘宝有很多ISV(即各种店铺),他们之前只会Web技术,写这个有门槛。另外,HTML标准在过去二十年内经受了检验,HMTL/CSS/JS对应的结构、样式和行为,天然分离,代码的可维护性会更好。抛弃标准自己发明DSL也不明智。
React Native重视平台独立性,不能做到100%代码共用,实际上还是要学习各平台的特性,Weex希望做到100%共用,即一次编写到处运行,进一步降低开发门槛。
React Native在一些地方的性能上还有问题,手淘希望能自己主导优化的进程,否则会很被动。