一、工作原理
Weex 是一个动态化的高扩展跨平台解决方案。 在 Weex 代码中,您可以使用 <template>,<style>
和 <script>
标签编写页面或组件,然后将它们转换为 JS bundle 以进行部署。当服务器返回给客户端 JS bundle 时,JS bundle 会被客户端的 JavaScript 引擎处理,并管理渲染 native 视图,调用原生 API 和用户交互。
具体的处理过程如下
(1)云端部署和分发
Weex 的 JS bundle 可以作为 web 开发中的一段静态资源进行部署和下发。几乎可以复用 HTML5 所有的工程体系和最佳实践。比如在本地开发环境通过部署工具将 JS bundle 部署到 CDN、通过 CMS 或搭建平台把业务数据和模块化的前端组件自动化拼接生成 JS bundle、通过服务端 JS bundle 的流量和日志统计页面的访问情况、通过 AppCache 或类似的方式对 JS bundle 在客户端进行缓存或预加载以降低网络通信的成本等。
AppCache 的介绍:http://blog.youkuaiyun.com/u011774517/article/details/72827828
(2)客户端JavaScript引引擎
week的iOS端采用的是JavaScriptCore内核,并且客户端的JavaScript 是单例,所有JS Bundle共用一个JavaScript实例,节省资源,{同时运行时对每个JS Bundle进行了上下文隔离,使其高效安全的工作JS Framework 做了预置,开发者不必把 JS Framework 打包在每个 JS bundle 里,从而大大减少了 JS bundle 的体积,也就进一步保障了页面打开的速度。}--不太懂后期更新
(3)客户端渲染层
Weex目前提供iOS和Android客户端的native渲染层。每个端都基于DOM模型设计并实现标准的界面渲染接口供JavaScript引擎调用
虚拟DOM如下
二、Weex构建移动应用
1、整体结构
移动应用被分解成不同的页面,页面用URl做唯一标示,然后通过移动应用路由(导航栏、tab切换)将页面串联起来。
2、使用Weex开发,你需要做什么?
(1)确定应用的每个页面以及其对应的URL
(2)页面之间的关系、跳转逻辑
(3)应用需要的原生的API及服务
(4)week创建页面、调试、发布
三、weex代码构成
week代码主要由template、style、script构成,符合典型的MVVM
(1)template,定义了页面的结构,,是Weex的主要架构,由标签以及标签包围的内容构成。使用 HTML 语法描述页面结构,内容由多个标签组成,不同的标签代表不同的组件。
(2)style描述了Weex的标签如何显示,使用 CSS 语法描述页面的具体展现形式。
(3)script为标签添加数据和逻辑,访问本地或远程的数据并动态更新