Weex之微體驗

前言

之前的幾個月里,已經狠狠地體驗了一把React-Native,享受著React-Native帶來的快捷,也承受著踩坑的痛苦。改用一句非常流行話“從入門到直接放棄”。而隨著Weex的開源,仿佛又看到了一絲希望的曙光,于是閑暇之余先嘗試一番,應大領導要求做些技能儲備,以便將來不時之需……

閑話不多說,下面開始體驗之旅

準備工作——Weex環境搭建

1. 首先安裝Node.js

$ brew install node

2. 安裝Weex的集成環境

$ sudo npm install -g weex-toolkit

3. 驗證是否安裝成功

$ weex

4. 開發工具選擇

我使用的是Sublime Text,期間也使用過WebStorm,但總是莫名的卡頓所以最終放棄了。

Sublime Text高亮狀態設置:View -> Syntax -> Vue Component

Weex項目——“Hello Weex!”

1. 新建一個文件 WeexDemo,在 WeexDemo 目錄下用終端執行:weex init,接著按照提示輸入項目名稱 XXX。運行后,相應的文件便會被創建。

$ weex init

2. 在被創建的文件中,對于熟悉前端或是React-Native的同學而言,你會看到一個尤為親切的文件名——package.json。就是它告訴我們,我們還需要安裝一些局部依賴庫,所以老老實實地在終端接著運行npm install。(做個說明,新版的Node.js中已經集成了npm,所以我們在安裝過新版的Node.js后就無需再安裝npm了。當然你也可以運行npm -v來查看電腦中是否安裝)。

$ npm install

3. 執行后,WeexDemo文件中的目錄如圖所示

· index.html——瀏覽器啟動頁面

· src——用來存放.we文件

· webpack.config.js——webpack的配置文件

4. 一切就緒后,我們可以查看一下這個項目最終的運行結果是什么。終端運行npm run serve

瀏覽器訪問:http://localhost:8080/,這樣你就會看到一個“HelloWeex!” 的頁面。(如果打開的頁面沒顯示,可以先執行npm run dev 后再執行 npm run serve )

$ npm run serve

當然也可以更快捷一點,weex-bootstrap.we為src中的文件,我們通過運行weex src/weex-bootstrap.we直接在瀏覽器中查看weex-bootstrap.we的運行結果。

$ weex src/weex-bootstrap.we

5. 運行結果如圖所示

如何集成Weex到iOS工程中

作為iOS開發,當然還需要把Weex集成到iOS工程中好好體驗一把。說干就干,并且有圖有真相。

1. 項目初始化

2. 在根目錄下執行touch Podfile,然后編輯Podfile文件,代碼如圖所示

3.下載最新的WeexSDK,地址為:https://github.com/alibaba/weex,將sdk文件夾拷貝到新建的iOS項目中,和Podfile里配置的路徑保持一致

4.在當前目錄,終端執行pod install

5.當前目錄下創建一個新文件夾weex(可命令行mkdir weex),終端cd到weex目錄下,執行weex init

6.安裝局部依賴庫,在當前目錄下(weex目錄下)執行:npm install

7.創建一個文件夾js,存放后面weex src -o js生成的js文件。為什么要生成js文件,建議去查看Weex的工作原理

8.將創建的js文件夾導入到Xcode工程的文件列表,注意箭頭所指

9.Xcode打開workspace項目文件,在AppDelegate.m文件中導入頭文件#import 。初始化代碼

10.運行結果如圖所示

在模擬器中,沒有顯示網絡圖片是因為需要在iOS代碼中自定義圖片加載類,該類需要遵守WXImgLoaderProtocol協議,并實現協議方法。圖片加載類寫好后,還需在入口函數中注冊。這里不做過多敘述,可以參考官方Demo。在iOS中,一個Weex頁面對應一個視圖控制器,在這里用的是官方封裝好的WXBaseViewController,你也可以選擇繼承它寫一個視圖控制器,或是自己寫一個視圖控制器配合WXSDKInstance來實現Weex頁面渲染。

Weex-Demo演示

1. Gif動態圖展示


2. Weex-Demo下載地址:https://github.com/yanshiyu/Weex-Demo.git?里面的實現功能在這里不做敘述,有興趣的同學可以下載Demo到本地閱讀。有問題的也可以在github上留言提問。

總結

1. 因為之前入手過React-Native,所以轉戰Weex還是很比較輕松,但是開發之前還是需要好好研究文檔,遇到復雜點功能則需要仔細研讀阿里的官方Demo。

2. 目前Weex的文檔還不夠詳細,遭到很多開發人員的吐槽,阿里內部人員回復稱,他們正在“憋大招”,所以還是很期待??。

3. Weex自身還不能加載本地圖片。不過集成到iOS工程中后,可以通過自定義圖片加載類同時實現網絡圖片和本地圖片的加載。

4. 不得不說,Weex中的ListView是一個很大亮點,不僅實現了cell復用,而且數據處理方面也很簡單。

5. 說實話,Weex初體驗感覺還是很好的,只是Weex現在還很“年輕”,使用的用戶還不是很多,以至于社區不是很活躍,相關技術博客也不是很多。希望隨著Weex各方面的完善,越來越多的人可以投身到Weex開發中來,真正的做到”Write once, run everywhere”。


==================

此文之前于2016-11-29發布于微信公眾號insightLabs上,今日特重新發布于簡書!

==================

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 2016年4月21日,阿里巴巴在Qcon大會上宣布開源跨平臺移動開發工具Weex,Weex能夠完美兼顧性能與動態性...
    晴天咚咚閱讀 2,910評論 1 15
  • 什么是 weex weex 是阿里開源的一套三端通用方案,只要編寫一次代碼就能運行在 iOS、Android 和 ...
    Tatinic閱讀 1,332評論 0 9
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,115評論 25 708
  • 讀書時期,女孩們總會有幾個要好的朋友,陪你哭,陪你笑,見過你出糗的樣子,一起八卦暗戀的男生,她們是知道你最多秘密的...
    Twyla閱讀 584評論 1 3
  • 小敏的課外書 文\楊聰(本號真名) 小敏跟隨打工的父母四處漂泊。這學期,她成了蒼南縣靈海鎮水景小學六年(5)班的插...
    溫州好老師閱讀 848評論 6 3