专注于 JetBrains IDEA 全家桶,永久激活,教程
持续更新 PyCharm,IDEA,WebStorm,PhpStorm,DataGrip,RubyMine,CLion,AppCode 永久激活教程

Weex开发之路初探

前言

在学习Weex过程中,参考官方开发文档和博客总结的一篇文章。从Weex扫盲到决定使用Weex的基本介绍。后续会针对开发环境搭建、开发、打包、发包中的细节进行下一步的研究。

一、Weex简介

(一)概述

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

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

(二)特点

  • 页面的开发支持Rax和Vue;
  • 一次编写,三端(Android、iOS、Web)运行;
  • UI的绘制通过Native的组件,JavaScript 逻辑在JS引擎里运行,两者通过JavaScriptCore通信;
  • 支持Native扩展;
  • 每个weex页面会被打包成一个js文件,WeexSDK将js文件渲染成一个view;

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

  • 效率问题

    58_1.png

  • 动态化:weex页面最后打包完是一个js文件,只要能做到动态下发JavaScript,那便可以实现动态化,可以热修复,甚至可以热部署,完全替换或者新增页面。
  • 成熟度:在2016年阿里双十一中,Weex在阿里双十一会场中的覆盖率接近99%,页面数量接近2000,覆盖了包括主会场、分会场、分分会场、人群会场在内几乎所有的阿里双十一会场业务。

二、Weex工作原理

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

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

58_2.png

三、Weex开发环境搭建

一、(1)安装node –> (2)安装npm –> (3)安装weex-toolkit)

第一步:下载安装Node.js,默认安装在C:\Program Files\nodejs下面,一路next完成安装。
第二步:查看Node.js和npm是否安装成功。命令行:node -v   npm -v
   (通常,安装了 Node.js 环境,npm包管理工具也随之安装了。
     因此,直接使用 npm 来安装 weex-toolkit。
     npm 是一个 JavaScript 包管理工具,它可以让开发者轻松共享和重用代码。
     Weex 很多依赖来自社区,同样,Weex 也将很多工具发布到社区方便开发者使用。)
第三步:安装weex-toolkit
    命令行:npm install -g weex-toolkit
    国内开发者可以考虑使用淘宝的 npm 镜像 —— cnpm 安装 weex-toolkit
    命令行:npm install -g cnpm --registry=https://registry.npm.taobao.org
    再命令行:cnpm install -g weex-toolkit
    如果提示权限错误(permission error),使用 sudo 关键字进行安装
    命令行:sudo 4 install -g weex-toolkit
第四步:查看是否安装成功。命令行:weex -v    ( - weexpack / weex-builder / weex-previewer )

四、创建Weex项目

第一步:在D盘中,新建weex-project
第二步:用命令行:cd D:\weex-project
第三步:初始化weex项目,命令行:weex create day01
    (day01就是weex项目的名称)
第四步:用命令行:cd D:\weex-project\day01
第五步:安装项目依赖  命令行:npm install  或者  cpnm install (取决于环境搭建的第三步)
第六步:cpnm install 执行成功后,项目中会多出一个node_modules文件夹
第七步:在day01目录下,输入命令行:npm run dev  (执行成功或者失败无所谓 )
        再重新开启一个命令窗口,进入day01目录,输入命令行:npm run serve,
        浏览器就自动打开了weex页面    
第八步:代码在src/index.vue 中查看

五、Weex开发需要掌握的知识

Node、Vue、ES6、是Android和iOS开发工具的使用。

六、Weex打包和发包

(一)打包

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

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

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

58_3.png

打包后的JSBundle有两种格式:

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

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

不同的头部是要告诉使用什么语法解析此JSBundle。至此,我们准备「热更新的包」就已经准备完毕了,接下就是发包执行了。

(二)发包

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

七、总结

以上是学习Weex的收获,后续会针对开发环境搭建、开发、打包做进一步的学习和记录。

文章永久链接:https://tech.souyunku.com/27653

未经允许不得转载:搜云库技术团队 » Weex开发之路初探

JetBrains 全家桶,激活、破解、教程

提供 JetBrains 全家桶激活码、注册码、破解补丁下载及详细激活教程,支持 IntelliJ IDEA、PyCharm、WebStorm 等工具的永久激活。无论是破解教程,还是最新激活码,均可免费获得,帮助开发者解决常见激活问题,确保轻松破解并快速使用 JetBrains 软件。获取免费的破解补丁和激活码,快速解决激活难题,全面覆盖 2024/2025 版本!

联系我们联系我们