仿《ONE》APP又來了!
又寫了一個《ONE》,別急呀,我可沒copy上次寫的程式碼~
這是用ReactNative寫的《ONE》
基本介面都已經實現,當然了,有些地方圖省事(搞不定) + 追求速度寫的Demo,就自然會導致:
- 退而求其次的實現方式
- 程式碼結構可能不太規範/清晰
- 可能還有bug呢(我不聽我不聽)
專案地址 => github.com/liuzho/ONE-…
我的個人主頁 => liuzho.com
儘管Kotlin風光無限幾乎對各大社群進行了屠版,但我還是冒著被淹沒的風險把這個Demo發出來了,萬一有人看呢(逃..
沒事,ReactNative自有魅力!(各種技能全給你學了管你誰有魅力).....
這個Demo對你有沒有幫助?
如果你初學RN,那麼幫助可能有限,請你點個贊/點個star,以備後續學習
如果你是RN大牛,那麼請你點個贊/點個star,慢慢看,慢慢嘲諷我
如果你有一丟丟RN基礎,想練練手,那麼請你點個贊/點個star,反正你也學不到啥略略略~~~
預覽
當然了,國際慣例,甩預覽圖:
在你的電腦上執行
你需要這樣做:
git clone https://github.com/liuzho/ONE-RN.git
cd ONE-RN
npm install//切記不要用cnpm!親測cnpm導致無法執行
react-native run-ios
orreact-native run-android
理論上iOS(測試可用,部分元件如ToastAndroid不通用報黃)和Android都可以執行
專案情況
"react": "16.0.0-alpha.6",
"react-native": "0.44.0",
"react-navigation": "^1.0.0-beta.9"複製程式碼
StackNavigator / TabNavigator的使用
你能看到的:底部Tab(TabNavigator)、第一個Tab內類似viewPager滑動(TabNavigator)、跳轉到使用者/搜尋等介面(StackNavigator)
為什麼不用ViewPagerAndroid來實現第一個Tab內的滑動呢,因為這個元件在iOS不能用啊...GitHub應該有通用元件,我沒有去找,用TabNavgation算了吧
元件資訊傳遞props / nav的router攜帶資料params這些
抽取了一個Toolbar元件,title的顯示通過props/router搞定,StackNavigator的router(專案內appNavigation)通過props瘋狂傳遞給各個介面/元件
通用控制元件的抽取
Toolbar、CdView等一些元件的抽取(我沒有刻意去做這件事,可能有些應該抽取的控制元件我並沒有很好的抽取出來)
動畫Animated
我承認其實就一個假迴圈旋轉動畫....CdView點選按鈕旋轉,以前總結過Animated知識點現在全忘了...
WebView載入網頁並插入JS程式碼
Detail頁面的內容,由於想快點完成Demo,也覺得介面寫也就是一樣的,就沒自己實現,直接用了WebView載入相應的WebApp頁面,然後通過
webView.injectJavaScript
插入我的JS程式碼,將內容中頭部和底部一些不需要的地方全部通過Element.reoveChild
給移除掉了ListView、fetch使用
關於ListView、fetch的使用我有寫過一篇文章:ReactNative網路fetch資料並展示在listview中
那麼為什麼我沒有在這個基礎上實現下拉重新整理、上拉載入、headerView、footerView呢?因為有一個FlatList完全支援這些做法!那又為什麼我沒有用FlatList呢?!因為在我發現FlatList的時候為時已晚,我已經不想再修改之前寫了的程式碼了....FlatList中文文件
還有其他一些我一時也想不起來,你覺得都用到了啥?T_T求不打
感謝API哥們兒?這次你還冒出來不?
API:戳這裡=>ONE的API
注:若侵犯《ONE》權利,我將及時刪除所有相關內容
我將保持更新/優化一段時間,畢竟還有一些細節沒完成,還有挺多需要優化的地方