上次我們講了組件昔榴,想必大家對(duì)React組件有了一定的了解了吧。但是離做一款app出來(lái)還是有很長(zhǎng)的距離,一個(gè)好的架構(gòu)能幫助開(kāi)發(fā)者更好的完成高質(zhì)量的代碼吧寺。今日就來(lái)說(shuō)道說(shuō)道這個(gè)RN的架構(gòu)怎么搭~(大佬們有見(jiàn)解可提出來(lái)啊)散劫。
說(shuō)起架構(gòu)最為常用的就是稚机,React Native + Redux,所有我們就來(lái)搭建這樣一個(gè)框架获搏。
1赖条、Redux
這個(gè)具體看Redux文檔吧失乾,我只簡(jiǎn)單的說(shuō)一下,React中又一個(gè)state狀態(tài)變量纬乍,我們可以通過(guò)改變這個(gè)變量來(lái)局部刷新頁(yè)面碱茁,那么當(dāng)我有好多個(gè)頁(yè)面同時(shí)都和這個(gè)state有關(guān)該如何做呢?這時(shí)就能夠用到redux仿贬,redux提供了一個(gè)唯一的state樹(shù)(后面將稱(chēng)之為store)纽竣,將組件中的state連接到store,通過(guò)改變store中的值來(lái)改變多個(gè)組件中的state值茧泪,從而達(dá)到同步刷新的效果蜓氨。redux中包括action與reducer,這兩樣都是為了方便組件來(lái)改變store中的state值队伟。我個(gè)人理解action 就是方法申明穴吹,reducer就是方法實(shí)現(xiàn)。這里先不寫(xiě)action與reducer怎么寫(xiě)嗜侮,畢竟我們要說(shuō)的的是架構(gòu)港令。
2、具體架構(gòu)
我新建了一個(gè)app目錄代表這是我實(shí)現(xiàn)app的部分锈颗,component表示react組件顷霹,action與reducer分別代表redux的兩個(gè)模塊,constant代表常量击吱,util代表公共方法泼返,image圖片。component里的Home表示主頁(yè)的組件姨拥,App是我們app具體的實(shí)現(xiàn)的一個(gè)入口绅喉。index是component索引(用ES6的import方法import進(jìn)來(lái)component文件夾就會(huì)自動(dòng)找到文件夾下的index.js文件 )。
這是比較基礎(chǔ)的架構(gòu)了叫乌,有想法的小伙伴也可自行擴(kuò)展柴罐。
3、執(zhí)行流程
我們知道RN程序的入口是index.xxx.js憨奸,分為iOS和android革屠,而實(shí)際上我們只有一套代碼,這就需要我們將這兩個(gè)文件指向同一個(gè)js文件排宰,我在這兩個(gè)文件里都只寫(xiě)了一句話(huà):
require('./app');
這句話(huà)其實(shí)就是執(zhí)行了 ./app/index.js 文件似芝。 這樣我們真正的入口就變成了 ./app/index.js
我們?cè)賮?lái)看./app/index.js文件具體實(shí)現(xiàn)。
嘿嘿板甘,這里我只給了截圖党瓮,也是提醒大家不要光copy了,理解才最要盐类。這里除了注冊(cè)了app寞奸,還將app綁定到了redux呛谜,相比這幾行代碼也不難懂,我就不嚼舌頭了哈哈枪萄,原諒我表述能力一般。這樣就成功進(jìn)入到我們的主程序App瓷翻。
欲知后事如何聚凹,請(qǐng)聽(tīng)下回分解!