一、Weex是什么?
考虑这个问题我们先来看看Weex不是什么把,根据文章
对无线电商动态化方案的思考(三) 中声明的是:也想强调一下 Weex 不是什么:
- 不是一个 HTML5 库或开发框架
- 不是一套全新的技术
- 不是为了解决纯 native 开发的体验问题
- 不是一个以自身为中心的移动应用开发框架
而根据第二篇文章开头声明的定位我们了解到:**Weex 是一款轻量级的移动端跨平台动态性技术解决方案。****相信到这里可以大概了解了Weex其实一个整套的技术解决方案,并不是一个新的框架或者库,它是一些技术的整合。
阿里的一个KPI项目.KPI绩效考核
二、原理
整个简单的流程如下:
1.组件的声明方式:可以看到Weex并没有采用Vue.js官方的声明方式,而是采取了跟标准更靠近一步的Webcomponents形式,但是在文中有提到Weex采取的数据绑定和依赖收集是复用了Vue.js的实现。
2.在有了组件并且用组件搭建好了界面后,这里添加了一层transformer。把组件中的数据绑定,style等的解析提前到了在渲染真实dom之前,编译成json,或者js function。
3.经过transform后,怎么一套代码对应到多端呢?这里可以看到Weex吸取了reactjs的virtual dom的思想。在web view& broswer中直接生成dom。在native中生成native控件。这里使用了JavaScript 引擎接收js bundle通过JS Bridge 和原生API交互。最终生成原生的控件或页面。
三、weex RectNative
React Mix
通过中间层,来使得ReactNative,能支持现有的HTML5的js+ dom api + css的开发模式.
ReactNative框架推出已经有一段时间了,相信很多小伙伴都在尝试实现Write Once, Run Anywhere的梦想,比如淘宝的ReactWeb等等,但是这些框架都局限于因为ReactNative本省的局限性,比如不支持CSS,不支持DOM操作,不支持选择器等等,而没有办法实现Js代码的全平台统一,现在通过全新的ReactMix框架,你可以让你的代码不仅可以在ReactNative上跑起来,实现安卓和iOS代码的统一,而且同样一份代码也可以在PC,H5上跑起来