Weex 是一个动态化的高扩展跨平台解决方案,也就是说开发人员只需要写一份代码就可以同时在移动端(Android端、iOS端)、Web端运行,这有别于React Native,从技术实现上也略有区别。
下面是一张Weex的整体架构图。
从这张图我们可以发现,Weex 表面上是一个客户端技术,但实际上它串联起了从本地开发环境到云端部署和分发的整个链路。
具体来说,开发者首先可以在本地像撰写web页面一样撰写一个 app 的页面(Weex File),然后编译成一段 JavaScript 代码(transformer
),形成 Weex 的一个 JS bundle
;在云端,开发者可以把生成的 JS bundle 部署上去(deploy
),然后通过网络请求或预下发的方式传递到用户的移动应用客户端(Serve->JS FrameWork
);在移动应用客户端里,WeexSDK 会准备好一个 JavaScript 引擎(JSCore、V8
),并且在用户打开一个 Weex 页面时执行相应的 JS bundle,并在执行过程中产生各种命令发送到 native 端进行的界面渲染或数据存储、网络通信、调用设备功能、用户交互响应等移动应用的场景实践(callJs、callNative
);
说了这么多,其实Weex的运作流程可以使用下面的原理来描述: <