- 一、ES6語法不兼容
for of
語法,會產生一些不可預知的bug。
- 二、從服務器獲取到的配置文件XXX.bytes,直接根據pb文件解析便可,千萬不要進行json解析,不然pb裏的枚舉值就會被轉成字符串,致使獲取不到預想的結果。
- 三、作本地緩存的時候,react-native提供的AsyncStoreage只能存儲字符串,因此存入緩存以前數據都要進行json序列化,可是當從緩存中取出數據,進行json解析,加入緩存以前的對象的一些默認(例如:boolean類型)值,都變成undefined了,會影響原有的判斷邏輯,須要對數據進行邏輯判斷的補充。
- 四、在開發中確定會遇到須要獲取時間戳的問題,React-native中獲取的時間戳是毫秒爲單位,並且後面還有幾位小數,打印了幾條數據觀察,發現都是1位小數,毫秒到的秒的轉換,須要再除以1000,因而就按4位小數進行截取,
let timeStamp = timeStamp.substring(0, timeStamp.length - 4);
,可是在後來的程序運行中同事發現,有的時候,後面會有沒有小數的狀況,結果截取到的時間戳就少了一位,結果就出錯了。因而他把獲取時間戳的代碼修改如:let timeStamp = Math.floor(new Date().getTime() / 1000).toString();
,這樣獲取到的就是時間戳的整數部分了,且是用秒爲單位的。
- 五、react-native中的text組件,若是不設置寬度的話,默認是父組件的寬度,顯示不下才會進行換行,開發中遇到遇到兩種狀況:一個image & text 採用橫向佈局,若是不設置text的寬度的話,超過父組件的寬度,右側的文本會有丟失的狀況;一個text & image 採用橫向佈局,若是不設置text的寬度的話,text會默認佔用父組件的所有寬度,結果右側的image被擠到了父組件以外。
- 六、數據埋點遇到的坑點:因爲服務器和客戶端不在同一個時區,服務器接收到打點數據,由於時間差的緣由,對客戶端上報的一條數據進行了屢次入庫,致使數據量異常。通過商量,服務器對接收到的數據進行去重,且後續時間以服務器時間爲準。
- 七、AsyncStoreage的數據存儲速度有待懷疑。在性能調優的時候發現,一些方法的執行,快的是1毫秒,大部分的發放執行在40毫秒左右,到了帳號信息存儲的時候,就執行了一個
AsyncStorage.multiSet
方法,其中是5條數據,耗時一下就變成了800毫秒左右。截圖以下:

上面這個方法的執行耗時是783毫秒,因此對於這裏的信息存儲,仍是有很大的提高空間的。
AsyncStoreage給咱們在開發中提供了一些數據存儲的便利,可是隻適合於存儲少許數據,且對耗時感知不是很強的場景,對於登陸和註冊這種關鍵性步驟,AsyncStoreage的性能還有有欠缺的。react