【ReactNative】學習筆記(四)

接口及傳參

因自己一直只會做最簡單的項目,所以并不清楚從接口讀取數據是什么意思,但這個項目必須是要從服務端讀取數據的,所以,就跟著同事的demo嘗試了一下。this.props...具體的,我還不太會,還需要繼續學習。


JS時間倒計時

這是js里的經典部分,而不是RN的專屬,由此也可以看到,JS是基礎呢。如何呈現出,已經開播的時間呢?或者說,呈現出過程中的時間,又或者說,呈現出還有多少的時間才開始呢?在JS中與在RN中的不同是什么呢?

TimeDifference方法
分割時間字符串


RN時間倒計時

在JS中,倒計時的動態效果,我們是用 setTimeout("show_time()", 1000) 即可,并在else里使用clearTimeout(timerID) 清除定時器 。但在RN中,我們也需要動態刷新數據。想到RN中文網講state那一部分時,所介紹的 setInterval 方法。在倒計時的呈現中,時間差是需要動態的,再具體一點兒,是當前時間是動態的,然后讓當前時間與固定時間相減就可以得到倒計時了。這就是說,當前時間是需要如此定義的 this.state ={ liveTime : new Date() }。

接下來的問題是,哪里刷新呢?在 constructor中定義刷新函數是OK的。如何在頁面渲染完成后呈現的是新的時間呢。于是,我第一次使用了 componentDidMount 方法。

組件已加載,渲染完成

RN組件的生命周期的相關文章比較多,簡單而言就是說,一個組件從它被加載,到最終卸載時會經歷一個完整的生命周期:constructor--組件創建時調用一次。 componentWillMount--如果需要從本地存儲中讀取數據用于顯示,常用該方法,因為在這個方法中,如果通過setState函數修改狀態機變量,RN框架不會額外執行渲染。 rener--組件渲染,必須有。componentDidMount--初始化渲染完成后就會馬上被調用。?

于是,如下的代碼就可以在界面上顯示當前時間啦:

當前時間代碼
界面展示

再回歸到倒計時吧,因當前時間是用 new Date() 創建,與另一個日期格式不同,因此需要首先規范下日期格式咯:

格式化日期的方法

假設從后臺傳遞過來的數據是這樣的:“2009-12-02 12:25”,因需要將數據改為" 2009/12/02 12:25",然后再傳遞給 new Date 就可以使時間變為時間戳啦。var date=new Date();? 以前只是了解 new Date ,后來才知道是可以在其中傳參,來給它一個固定的日期格式的。

View中的日期格式化
后臺數據與當前時間目前的格式相同了
作差得到毫秒數
利用毫秒數計算常規差值


if else 還是 switch 呢?

曾經都在書本上的知識,真正用起來時,才明白優化是什么意思?如何使代碼更為簡潔,效率也更高呢?是只考慮 如何實現,還是如何更好的實現呢?作為一名程序員,給自己的定位又是什么呢?摘錄一篇前輩的文章吧:

switch...case與if...else的根本區別在于,switch...case會生成一個跳轉表(Binary Tree算法)來指示實際的case分支的地址,而這個跳轉表的索引號與switch變量的值是相等的。switch...case不用像if...else那樣遍歷條件分支直到命中條件,而只需訪問對應索引號的表項從而到達定位分支的目的。switch適用于分支較多的情況呢。

但說實話,我對效率并沒有很多的概念。我還處于從 0 到 1 的階段,期待自己可以從 1 到 2 的階段吧。

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

推薦閱讀更多精彩內容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,556評論 25 708
  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,991評論 19 139
  • 碎片布局left_fragment.xml 重寫Fragment類 修改activity_main.xml 回調方法
    moosoo閱讀 158評論 0 1
  • Repeated DNA Sequences All DNA is composed of a series of...
    gammaliu閱讀 497評論 0 0
  • 我有酒,你有故事嗎?我想傾聽你的故事。 只要是生活在這個世界上的人,都會擁有屬于他們自己的故事。一生的故事有時候是...
    爛哭貓閱讀 1,124評論 3 1