//联系人:石虎 QQ: 1224614774昵称:嗡嘛呢叭咪哄
一、weex的概念
Weex全名(Write Once, Run Everywhere)简称Weex.
Weex能够完美兼顾性能与动态性,让移动开发者通过简捷的前端语法写出Native级别的性能体验,并支持iOS、安卓、YunOS及Web等多端部署。在开发APP客户端等用到,在JS端,Weex又被人称为Vue Native.
发展经历:
2016年4月21日,阿里巴巴在Qcon大会上宣布跨平台移动开发工具Weex开放内测邀请。也是内测时间.
二、weex使用优点
优点:
1.Weex主要解决了频繁发版和多端研发两大痛点,同时解决了前端语言性能差和显示效果受限的问题。开发者可通过Weex官网申请内测。
2.开发者只需要在自己的APP中嵌入Weex的SDK,就可以通过撰写HTML/CSS/JavaScript来开发Native级别的Weex界面。
3.Weex界面的生成码其实就是一段很小的JS,可以像发布网页一样轻松部署在服务端,然后在APP中请求执行。
4.Weex更加轻量,体积小巧。
5.Weex可以支持iOS、Android、HTML5.
三、weex JS引擎
1.weex使用JS引擎 V8
2.weex基于vue.js(2W+ star),JS开发框架。
3.小巧轻量的前端开发框架,组件化,数据绑定,2.0引入virtual dom。
四、安装环境:
1.weex安装cli之后就可以使用
2.vue更接近常用的web开发方式,模板就是普通的html,数据绑定使用mustache风格,样式直接使用css
3.布局:实现了flexbox的相同子集使用了FaceBook的代码解析.4.已经有iOS项目的,可以通过cocospod直接安装Weex的SDK,
五、易用性
1.sdk使用 : weex 可以直接在 mvn 项目中使用;2.调试: weex支持在chrome中预览页面dom节点
3.页面开发 : weex 提供了一个playground,可以方便的预览正在开发的页面
4.即时预览: weex提供hot reload功能,可以边更改代码,边在手机上看到效果
5.打包 : weex 默认打的 js bundle 只包含业务 js 代码,体积小很多,基础 js 库包含在 weex sdk 中
6.部署: 斑马提供了可以拖拽搭建weex活动页面的功能
7.扩展: 三方库的接入上,weex对网络,图片,统计等常见的用户可能想自己定制的功能,提供了相应的适配接口8.集团库接入:weex有默认的mtop接入实现,UT接入实现
10.Moudle 方法调用线程 :weex 可以通过注解标注是否在UI线程执行
11.异步: weex只支持callback
六、性能
- 分包加载: weex默认提供分包实现
- 官方支持 : weex持续关注性能优化
- 大块view渲染: weex提供了node和tree两种渲染模式,优化长view的渲染
- ListView Android: weex使用recyclerview实现,性能稍好
七、社区
1.weex开源较晚,目前只有4k+ start,contributor以阿里人为主,
2.weex开源 较少,issue和pull request也比较少,社区目前规模比较小
八、工具链
1.debug tool 提供在 chrome 中调试的支持
2.打包工具 weex 默认提供的足够满足使用需求
3.webpack,gulp,脚手架工程
weex有相应的插件,方便开发,部署使用
九、页面降级
Weex默认是支持页面降级的。比如出现了错误,就会降级到H5。这里建议最好做一个线上的开关。我司在处理页面降级的问题上采取了两种级别的开关:
- App级的开关。这个开关是管理用户App是否使用Weex SDK的,这块是可以在线配置的。
- 页面级的开关。这个开关是管理某个页面是否开启Weex的。如果不开启就降级成H5页面。
除了降级以后,还对应采取了灰度的策略,这样保证线上bug降低到最低。
- 比如在用户量低峰期的时候开启开关进行灰度。还有一级灰度就通过线上实时错误监控平台来控制,如果因为突发事件导致Crash率陡升,那么就立即关闭Weex的开关,立即进行降级处理。
谢谢!!!