Weex學習之旅——hot reload

簡介

阿里新出的weex,我一個做android的也過來湊個熱鬧,自己做了一個簡單的demo恬涧,是一個知乎新聞+日記的APP,功能比較簡單碴巾,代碼也是最基本的寫法和用法溯捆,初學weex的童鞋們可以參考使用學習一下。

一些童鞋在學習餐抢、調(diào)試weex的時候非常頭疼现使,每次修改完代碼之后低匙,要么掃一下二維碼旷痕,要么手動刷新一下,很耽誤時間顽冶。這個demo實現(xiàn)了hot reload欺抗,即修改代碼,保存后强重,app端可以直接看到效果绞呈。
大概原理,需要啟動hot reload端口间景,即weex xxx.we命令佃声,這個服務啟動以后,java添加websocket監(jiān)聽命令倘要,就可以監(jiān)聽到we文件的改變圾亏。文件改變的時候,重新render你已經(jīng)開啟的12580端口服務封拧,就是你js打包上傳到的服務志鹃,這樣,就可以實現(xiàn)實時刷新的功能泽西。

使用方法

1曹铃、項目地址

2、配置環(huán)境

這個大家可以從weex官網(wǎng)去看捧杉。weex官網(wǎng)

3陕见、運行項目
首先需要:

npm install

裝好node_modules之后秘血,第一次命令如下:

npm run build

然后用studio打開playground代碼,把MainActivity.java中的代碼

    @Override
    protected String getHost() {
        return "10.12.65.114";
    }

中的return的string修改成你pc的ip就可以了评甜。

把MainActivity.java中的代碼

@Override
    protected String setHotRefreshUrl() {
        return "main";
    }

中return的string修改成你要調(diào)試的we文件的名字就可以了直撤。

啟動watch服務以及debug服務命令如下:

npm run dev

最新增加hot reload功能,修改完代碼后蜕着,可以在android上直接看到效果谋竖。
打開命令行,進入目錄src下承匣,執(zhí)行(weex后面增加的是你要調(diào)試的文件名蓖乘,如果你修改了文件名,只要把下面對應的文件名修改一下就可以了)

weex main.js --qr
  • 使用android studio打開playground韧骗,運行app嘉抒,修改代碼,就可以直接看到效果了袍暴。
  • 如果更改代碼沒有效果些侍,點一下app右上角的刷新按鈕,也可以立即看到效果政模。

遇到的坑

下面這些問題就是我在做weextwo的時候遇到的問題岗宣。

1、運行調(diào)試

我這里使用的方法其實就是講生成的js文件放到android中運行的淋样,當然weex是支持類似RN那樣耗式,pc作為服務器將生成的bundle分發(fā)到真機上,只要修改代碼趁猴,真機就可以立即看到結(jié)果刊咳。
不過weex文檔有點亂,所以相關東西還沒開始寫儡司,大家可以去探究探究娱挨。

2、網(wǎng)絡請求

網(wǎng)絡請求返回的數(shù)據(jù)格式問題捕犬,這個主要是要會weex debug跷坝,對js加斷點,調(diào)試或听,還要主要method和created探孝、ready是兩個范圍的函數(shù)(切忌不要把created方法寫到method中),method是你自己要定義的方法誉裆,created和ready是weex自帶的聲明周期方法顿颅。
因為weex還沒有很好的開發(fā)工具,所以我暫時用的webstorm足丢,但是webstorm無法自動化we的格式粱腻,所以我當時在寫第一個界面的時候就卡住了庇配,一直沒有進行我created中的方法,后面才發(fā)現(xiàn)绍些,原來自己把created寫到method中去了捞慌,大家一定要注意了。

3柬批、list的坑

list的每個item點擊傳入一個id的時候啸澡,通過var itemid = e.target.attr.newsid來獲取組件中newsid參數(shù)值,這種方式遇到一個非常非常奇葩的坑氮帐。就是如果這個組件是你自己定義的話嗅虏,沒法獲取到,必須是要原生的組件才能獲取的到上沐,具體原因還未查明皮服。

4、文檔錯誤

1)webview和imageview的時候参咙,src前面還有一個:龄广,怪不得我開始一直檢查不到問題,還有目前webview好像還不支持顯示html的功能蕴侧。

2)textarea和input中需要監(jiān)控change和input的時候择同,input的寫法是
oninput=“onTextAreaChange”,并不是文檔中那種寫法戈盈,試過奠衔,不行。

5塘娶、this的作用范圍

this的范圍不包括回調(diào)函數(shù),所以如果要在回調(diào)函數(shù)中改變data中的數(shù)據(jù)痊夭,我們需要在函數(shù)中聲明一個局部變量刁岸,使self=this,這個self的作用范圍就在回調(diào)函數(shù)中她我。

6虹曙、storage問題
因為你存儲或者獲取的時候都是在回調(diào)函數(shù)中獲取的,這是一個異步的過程番舆,所以你不能在執(zhí)行完一個函數(shù)之后酝碳,直接在下面的過程中,使用回調(diào)得到的結(jié)果恨狈,這個時候回調(diào)的結(jié)果可能還沒拿到疏哗,所以下面的過程都要放到回調(diào)函數(shù)中去。這個地方坑了我老半天禾怠。

需要解決的問題

  • 日記保存后并沒有立馬生效返奉,需要點擊退出之后重新進app才能生效贝搁,因為weex的生命周期沒有像android onresume生命周期,所以我暫時還沒修改芽偏。
  • 長按刪除雷逆,也是沒有立馬生效,同上原因污尉。
  • 界面沒有適配(weex沒有dp單位)膀哲,不同分辨率 界面看起來也不同。

效果

好了被碗,最后我們看一下等太,我們app的運行效果吧!

新聞列表

新聞詳情

日記列表

寫日記

還有上拉和下拉刷新蛮放,我沒有截圖下來缩抡,大家可以去試試。

項目源碼

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市娇唯,隨后出現(xiàn)的幾起案子羹与,更是在濱河造成了極大的恐慌,老刑警劉巖蘑险,帶你破解...
    沈念sama閱讀 216,470評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異岳悟,居然都是意外死亡佃迄,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,393評論 3 392
  • 文/潘曉璐 我一進店門贵少,熙熙樓的掌柜王于貴愁眉苦臉地迎上來呵俏,“玉大人,你說我怎么就攤上這事滔灶∑账椋” “怎么了?”我有些...
    開封第一講書人閱讀 162,577評論 0 353
  • 文/不壞的土叔 我叫張陵录平,是天一觀的道長麻车。 經(jīng)常有香客問我,道長斗这,這世上最難降的妖魔是什么动猬? 我笑而不...
    開封第一講書人閱讀 58,176評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮表箭,結(jié)果婚禮上赁咙,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好序目,可當我...
    茶點故事閱讀 67,189評論 6 388
  • 文/花漫 我一把揭開白布臂痕。 她就那樣靜靜地躺著,像睡著了一般猿涨。 火紅的嫁衣襯著肌膚如雪握童。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,155評論 1 299
  • 那天叛赚,我揣著相機與錄音澡绩,去河邊找鬼。 笑死俺附,一個胖子當著我的面吹牛肥卡,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播事镣,決...
    沈念sama閱讀 40,041評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼步鉴,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了璃哟?” 一聲冷哼從身側(cè)響起氛琢,我...
    開封第一講書人閱讀 38,903評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎随闪,沒想到半個月后阳似,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,319評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡铐伴,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,539評論 2 332
  • 正文 我和宋清朗相戀三年撮奏,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片当宴。...
    茶點故事閱讀 39,703評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡畜吊,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出即供,到底是詐尸還是另有隱情定拟,我是刑警寧澤,帶...
    沈念sama閱讀 35,417評論 5 343
  • 正文 年R本政府宣布逗嫡,位于F島的核電站,受9級特大地震影響株依,放射性物質(zhì)發(fā)生泄漏驱证。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,013評論 3 325
  • 文/蒙蒙 一恋腕、第九天 我趴在偏房一處隱蔽的房頂上張望抹锄。 院中可真熱鬧,春花似錦、人聲如沸伙单。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,664評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽吻育。三九已至念秧,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間布疼,已是汗流浹背摊趾。 一陣腳步聲響...
    開封第一講書人閱讀 32,818評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留游两,地道東北人砾层。 一個月前我還...
    沈念sama閱讀 47,711評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像贱案,于是被迫代替她去往敵國和親肛炮。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,601評論 2 353

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,072評論 25 707
  • 2016年4月21日宝踪,阿里巴巴在Qcon大會上宣布開源跨平臺移動開發(fā)工具Weex侨糟,Weex能夠完美兼顧性能與動態(tài)性...
    晴天咚咚閱讀 2,890評論 1 15
  • 前言 2016年4月21日,阿里巴巴在Qcon大會上宣布跨平臺移動開發(fā)工具Weex開放內(nèi)測邀請肴沫。Weex能夠完美兼...
    一縷殤流化隱半邊冰霜閱讀 38,974評論 135 366
  • 突然想到自殺粟害,不知道為什么。我覺得自己是一個不會輕易放棄生命颤芬,對生活充滿希望的人悲幅。可這幾天想到了自殺站蝠。 應該有...
    未梓閱讀 177評論 0 0
  • Snap餐飲品牌的建立及品牌設計 轉(zhuǎn)載自:左右設計 Snap是一家以提供外賣餐為主經(jīng)營方式的餐飲品牌汰具,Pentag...
    懿木智庫閱讀 456評論 0 0