ReactNative仿《ONE》APP

LiuZh發表於2017-05-21

仿《ONE》APP又來了!

又寫了一個《ONE》,別急呀,我可沒copy上次寫的程式碼~

這是用ReactNative寫的《ONE》

基本介面都已經實現,當然了,有些地方圖省事(搞不定) + 追求速度寫的Demo,就自然會導致:

  1. 退而求其次的實現方式
  2. 程式碼結構可能不太規範/清晰
  3. 可能還有bug呢(我不聽我不聽)

專案地址 => github.com/liuzho/ONE-…

我的個人主頁 => liuzho.com

儘管Kotlin風光無限幾乎對各大社群進行了屠版,但我還是冒著被淹沒的風險把這個Demo發出來了,萬一有人看呢(逃..

沒事,ReactNative自有魅力!(各種技能全給你學了管你誰有魅力).....

這個Demo對你有沒有幫助?

如果你初學RN,那麼幫助可能有限,請你點個贊/點個star,以備後續學習

如果你是RN大牛,那麼請你點個贊/點個star,慢慢看,慢慢嘲諷我

如果你有一丟丟RN基礎,想練練手,那麼請你點個贊/點個star,反正你也學不到啥略略略~~~

預覽

當然了,國際慣例,甩預覽圖:

ReactNative仿《ONE》APP
預覽1

ReactNative仿《ONE》APP
預覽2

ReactNative仿《ONE》APP
預覽3

在你的電腦上執行

你需要這樣做:

  1. git clone https://github.com/liuzho/ONE-RN.git

  2. cd ONE-RN

  3. npm install//切記不要用cnpm!親測cnpm導致無法執行

  4. react-native run-ios or react-native run-android

理論上iOS(測試可用,部分元件如ToastAndroid不通用報黃)和Android都可以執行

專案情況

    "react": "16.0.0-alpha.6",
    "react-native": "0.44.0",
    "react-navigation": "^1.0.0-beta.9"複製程式碼
  1. StackNavigator / TabNavigator的使用

    你能看到的:底部Tab(TabNavigator)、第一個Tab內類似viewPager滑動(TabNavigator)、跳轉到使用者/搜尋等介面(StackNavigator)

    為什麼不用ViewPagerAndroid來實現第一個Tab內的滑動呢,因為這個元件在iOS不能用啊...GitHub應該有通用元件,我沒有去找,用TabNavgation算了吧

  2. 元件資訊傳遞props / nav的router攜帶資料params這些

    抽取了一個Toolbar元件,title的顯示通過props/router搞定,StackNavigator的router(專案內appNavigation)通過props瘋狂傳遞給各個介面/元件

  3. 通用控制元件的抽取

    Toolbar、CdView等一些元件的抽取(我沒有刻意去做這件事,可能有些應該抽取的控制元件我並沒有很好的抽取出來)

  4. 動畫Animated

    我承認其實就一個假迴圈旋轉動畫....CdView點選按鈕旋轉,以前總結過Animated知識點現在全忘了...

  5. WebView載入網頁並插入JS程式碼

    Detail頁面的內容,由於想快點完成Demo,也覺得介面寫也就是一樣的,就沒自己實現,直接用了WebView載入相應的WebApp頁面,然後通過webView.injectJavaScript插入我的JS程式碼,將內容中頭部和底部一些不需要的地方全部通過Element.reoveChild給移除掉了

  6. ListView、fetch使用

    關於ListView、fetch的使用我有寫過一篇文章:ReactNative網路fetch資料並展示在listview中

    那麼為什麼我沒有在這個基礎上實現下拉重新整理、上拉載入、headerView、footerView呢?因為有一個FlatList完全支援這些做法!那又為什麼我沒有用FlatList呢?!因為在我發現FlatList的時候為時已晚,我已經不想再修改之前寫了的程式碼了....FlatList中文文件

  7. 還有其他一些我一時也想不起來,你覺得都用到了啥?T_T求不打

  8. 感謝API哥們兒?這次你還冒出來不?

    API:戳這裡=>ONE的API

    注:若侵犯《ONE》權利,我將及時刪除所有相關內容

  9. 我將保持更新/優化一段時間,畢竟還有一些細節沒完成,還有挺多需要優化的地方

結語

  • 更多內容歡迎訪問我的主頁我的部落格
  • 覺得本文/本Demo對你有所幫助,請不要忘了點一下文末的"♡"讓他變成"❤"
  • 當然,也別忘了Star一下我的倉庫 => ONE-RN
  • 學習就是耐住寂寞不斷踩坑,多動手敲就能有更多的知識經驗和肩椎脊柱受損T_T

相關文章