Weex框架介绍(上)

Posted APP研究与应用

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Weex框架介绍(上)相关的知识,希望对你有一定的参考价值。

    小伙伴们排队坐好,我们来上课啦~~




一、简介


(一)概述

    Weex 是阿里巴巴开源的一套构建高性能、可扩展的原生应用跨平台开发方案。2016 年 12 月 15 日,阿里巴巴宣布将移动开源项目Weex 捐赠给 Apache 基金会开始孵化。

Weex致力于使开发者能基于通用跨平台的 Web 开发语言和开发经验,来构建 androidios和Web应用。简单来说,在集成了 WeexSDK之后,你可以使用 javascript 语言和前端开发经验来开发移动应用。


(二)特点

    1、页面的开发支持Rax和Vue

    2、一次编写,三端(Android、iOS、Web)运行

    3、UI的绘制通过Native的组件,JavaScript 逻辑在 JS 引擎里运行,两者通过JavaScriptCore通信

    4、支持 Native扩展

    5、每个 weex 页面会被打包成一个js文件,WeexSDK将 js文件渲染成一个view


(三)为什么要使用Weex开发

    1、效率问题

Weex框架介绍(上)

    

    2、动态化 

    weex页面最后打包完是一个js文件,只要能做到动态下发 JavaScript,那便可以实现动态化,可以热修复,甚至可以热部署,完全替换或者新增页面。

 

    3、成熟度

    在 2016 年阿里双十一中,Weex 在阿里双十一会场中的覆盖率接近 99%,页面数量接近 2000,覆盖了包括主会场、分会场、分分会场、人群会场在内几乎所有的阿里双十一会场业务。阿里双十一主会场秒开率97%,全部会场页面达到 93%。 2016 年 12 月 15 日,阿里巴巴宣布将移动开源项目 Weex 捐赠给 Apache 基金会开始孵化。

 


二、工作原理


    在 Weex代码中,可以使用<template>,<style>和<script>标签编写页面或组件,然后将将前端页面(.vue)转换为JSBundle以进行部署。当服务器返回给客户端JSBundle时,客户端得到JSBundle后,通过WeexSDK的JavaScript引擎处理,并管理渲染native视图,调用原生API和用户交互。

 

Weex框架介绍(上)



三、怎么使用


 (一)打包

    熟悉ReactNative的人都知道,ReactNative的发布实际上就是发布一个 JSBundle,Weex也是这样,但不同的是,Weex将工程进行分包,发布多个JSBundle。因为Weex 是单页独立开发的,每个页面都将通过Weex打包器将vue/we 页面打包成一个单独的JSBundle,这样的好处在于减少单个 bundle包的大小,使其变的足够小巧轻量,提高增量更新的效率。

    

 #仅打包 $ npm run build 打包+构建 $ weex build Andriod     打包+构建+安装执行 $ weex run Andriod


    以上三种均会触发 Weex 对工程进行打包。在我们执行了以上打包命令后,所有的工程文件将被单独打成一个独立的 JSBundle,如下:

 

Weex框架介绍(上)


    打包后的 JSBundle 有两种格式

  # 由.vue文件打包出来的包格式(简写),使用 vue2.0 语法编写  // {"framework":  "Vue"}  /******/ (function(modules){               .......  /******/ })
 # 由.we文件打包出来的包格式(简写),使用 weex 语法编写  // {"framework":  "Weex"}  /******/ (function(modules){               .......  /******/ })


    不同的头部是要告诉使用什么语法解析此JSBundle。

    至此,我们准备「热更新的包」就已经准备完毕了,接下就是发包执行了。


 (二)发包

    打包后的 JSBundle 一般发布到发包服务器上,客户端从服务器更新包后即可在下次启动执行新的版本,而无需重新下载 app,因为运行依赖的 WeexSDK 已经存在于客户端了,除非新包依赖于新的 SDK,这也是热更新的基本原理。


    WeexSDK包括:JS Framework--JSBundle的执行环境、JS-Native Bridge--中间件或者叫通讯桥梁,也叫Weex Runtime、Native Render Engine--解析js端发出的指令做原生控件布局渲染。 

 


四、谁在使用Weex


    阿里系在使用Weex框架,包括手机淘宝、手机天猫、飞猪等,据了解在使用Weex框架的银行有:盛京银行、绍兴银行、晋商银行、哈尔滨直销银行、青岛农商银行、紫金农商银行、哈尔滨消费金融。

 


五、未来

    

    跨平台开发绝对是移动互联网开发的主角,2015年FaceBook推出ReactNative,2016年alibaba推出Weex,2018年Google推出Flutter,相信苹果公司的跨平台框架应该也不远了。

 





欢迎留言互动和推荐课题

我们会继续努力,感谢阅读~

以上是关于Weex框架介绍(上)的主要内容,如果未能解决你的问题,请参考以下文章

详解 Weex 页面的渲染过程

跨平台开发之阿里Weex框架环境搭建

Android初识weex与rax

Weex基于Vue2.0开发框架模板搭建

今晚直播丨阿里前端框架WEEX:从起步到奔跑

Weex基于Vue2.0开发框架模板搭建