最近很多朋友會(huì)問(wèn)到一些很基礎(chǔ)的第三方組件的問(wèn)題.所以今天寫(xiě)一下自己踩坑中積累的一些經(jīng)驗(yàn).方便入門(mén)級(jí)同學(xué)參考.
目前react-native更新到0.45版本,相對(duì)于原生的生態(tài)來(lái)講,react-native的生態(tài)差距很大,第三方組件良莠不齊.大家在開(kāi)發(fā)工程中,不免需要用到第三方組件,怎么樣快速的找到適合自己的組件,怎么去判斷好不好用,提高自己的工作效率是一個(gè)很大的問(wèn)題.
我自己在使用第三方組件的經(jīng)驗(yàn)大致如下:
1.根據(jù)需求關(guān)鍵字搜索組件名稱;
2.新建空項(xiàng)目,根據(jù)文檔,了解組件的特性和局限性,判斷是否滿足個(gè)人需求;
3.選定組件,將其使用到自己的項(xiàng)目中;
一.搜索組件
大家在開(kāi)發(fā)過(guò)程中,遇到官方?jīng)]有的組件,怎么樣去尋找自己需要的組件呢?
以一個(gè)常見(jiàn)的日期組件為例:
1.百度/Google.
內(nèi)事不決問(wèn)百度,外事不決問(wèn)谷歌.搜索大法好.
直接簡(jiǎn)單粗暴 搜索日期組件常用的詞匯,拼接上react native 關(guān)鍵字 "react native datePicker",基本上多點(diǎn)開(kāi)幾個(gè)網(wǎng)上大神們得推薦的組件,都能找到幾個(gè)不錯(cuò)的組件了.
這種方式信息量比較大,需要自己挨個(gè)辨別,需要有一定的信息過(guò)濾能力.用得多了也可以提高自己的信息過(guò)濾能力.
2.github/npm
這倆是神器一般的網(wǎng)站啊.
同樣簡(jiǎn)單粗暴,想好關(guān)鍵字 搜索欄搜索
這種方式搜索結(jié)果信息定位更精準(zhǔn),github里往往可以通過(guò)star很直觀的反饋出一個(gè)組件的質(zhì)量和大家的認(rèn)可度,也可以通過(guò)更新日期,獲取到當(dāng)前比較活躍的組件.由于每個(gè)人的需求都不太一樣,有時(shí)候star不是很多的,看起來(lái)很冷門(mén)的組件,也能帶給你驚喜.而且內(nèi)置文檔,example.!!!!!!強(qiáng)烈推薦此種方式.
npmjs.很好很強(qiáng)大,也是神器一樣的網(wǎng)站,但是我是從iOS轉(zhuǎn)過(guò)來(lái)的,習(xí)慣了github,npmjs用的比較少,了解不多.暫時(shí)沒(méi)有體會(huì)到個(gè)中精髓,用法基本類似github.有了解的同學(xué)歡迎留言回復(fù)補(bǔ)充.
3.混技術(shù)群,群內(nèi)口頭搜索.
這個(gè)方法肯定大家也經(jīng)常使用,在此打個(gè)廣告吧.給大家推薦我比較熟悉的三個(gè)群吧,都不是我的群
QQ群:397885169 ?這個(gè)群是最活躍的群,群內(nèi)學(xué)習(xí)氛圍最好,大神很多,大家聊天很愉快,群主目前在維護(hù)識(shí)兔開(kāi)源APP.識(shí)兔APP源碼地址?大家還在討論有時(shí)間的在搞幾個(gè).暫未施行.
QQ群:496325710 ?這個(gè)群里面大神很多,群內(nèi) 大大 同學(xué)是開(kāi)源APP IReading的作者IReading源碼,目前這個(gè)群很少有人活躍了.可能大家都很忙吧.
QQ群:245192933 這個(gè)群是我最早加的一個(gè)群 ,大神也有很多.
以上三個(gè)群都推薦給真正有需求想學(xué)習(xí)rn的同學(xué),如果您僅僅是一時(shí)興起,了解一下,進(jìn)群以后也不說(shuō)話,沒(méi)多久就把消息改成接受不提醒,或者不接受群消息的.網(wǎng)上的資料其實(shí)就很滿足需求了.
二.了解組件特性
爬坑的經(jīng)歷告訴我,不了解的組件千萬(wàn)不要輕易集成到組件中.簡(jiǎn)單的組件還好,直接把依賴刪除,把相關(guān)文件刪除即可,復(fù)雜的牽扯到原生集成的組件,一旦發(fā)現(xiàn)不好用,移除的時(shí)候很容易出現(xiàn)問(wèn)題.很費(fèi)精力.比如我使用codepush這個(gè)庫(kù),集成的時(shí)候,很麻煩,鼓搗了好久,后來(lái)發(fā)現(xiàn)可能導(dǎo)致一些問(wèn)題,移除的時(shí)候,又鼓搗了好久.耗時(shí)耗力不討好.
所以,在選定組件以后,建議大家init一個(gè)新項(xiàng)目,單獨(dú)用來(lái)展示該組件本身,了解一下各個(gè)屬性的特點(diǎn),值類型,需要注意的地方等等...確認(rèn)可以滿足自己的需求了,就可以放進(jìn)項(xiàng)目里面直接使用了.有一些不滿足項(xiàng)目需求的地方,可以在demo里面嘗試修改源碼,快速修正效果使得滿足自己的需要.然后可以將組建集成到項(xiàng)目?jī)?nèi),然后依照demo源碼的修改,同步修改項(xiàng)目?jī)?nèi)的源碼,磨刀不誤砍柴工,這句話還是很有道理的.
一般需要了解的主要以下幾個(gè)部分:
1.組件布局方式
2.屬性
3.數(shù)據(jù)格式
4.方法(參數(shù)){返回值}
ps:也有一些組建直到在項(xiàng)目中使用的時(shí)候才會(huì)暴露出一些與其他組件沖突,或者數(shù)據(jù)之間,動(dòng)畫(huà)效果有沖突的問(wèn)題,這種問(wèn)題暫時(shí)避免不了,只能放進(jìn)項(xiàng)目里一點(diǎn)點(diǎn)改了.
三.選定組件,將其使用到自己的項(xiàng)目中
如果了解了組建的特性了,知道怎么使用了,就可以根據(jù)文檔說(shuō)明,將組件使用到自己的項(xiàng)目中了