React Native 基礎(chǔ)及架構(gòu)(二)

前面幾篇可以說比較基礎(chǔ),這篇講一個對新手來說是一個難點——RN中的路由。

也許小伙伴們接觸過React中的路由 react-router,然而在react-router是針對瀏覽器的,在app中無用,更別說我在做RN前還沒寫過react。

不逼逼了,我們這次要講的是app中的路由——Navigator??吹竭@個詞,寫過原生應用的可能就知道是怎么回事了,沒錯這就和iOS中的NavigatorController差不多,估計就是直接用的。

Navigator組件主要有兩個變量,一個是route,一個是navigator。每一個路徑都是一個路由,navigator是裝路由的數(shù)組。理解了這個我們不難想到,把一個route路徑push進入navigator,我們的app就回跳轉(zhuǎn)過去了,反之pop出來就返回上一個頁面。

Navigator還有幾個常用屬性:

initialRoute: 初始化路徑,

renderScene: 渲染頁面邏輯函數(shù),

configureScene: 配置頁面跳轉(zhuǎn)效果。

我們來看一下簡單的實現(xiàn):?

假如我們首頁組件是Home, 我說們只需要調(diào)用

navigator.push({component: Home, ?params: {} });

就可以跳轉(zhuǎn)到主頁了。當然我在里面加了initialRoute屬性,所以默認就在首頁了。

本來寫到這這個路由就講的差不多了,但好像沒講多少,這又尷尬了。只能補點干貨了。從 上面的代碼可以看出我們的是如何來定義一個頁面的路由Route。

route有兩個參數(shù), component 和 params。component的代表該頁面的主見,params表示該組件的屬性,那么params具體是什么呢。?

首先我們需要理解 {...route.params} 這個用法。這是ES6與React結(jié)合起來的語法。如果在組件的標簽中加入了 ‘...’ 符號,component就會將這個js對象中的屬性全部作為props屬性傳到組件內(nèi)部。

其次我們就可以想一下,params里到底該該傳哪些東西。很簡單,組件里需要哪些props,我們就往params里塞哪些東西。

我們還往組件里單獨穿了一個props —— navigator,也就是路由的數(shù)組。這是干嘛呢?不把數(shù)組傳進去我們怎么返回上一頁呢?就是這么一回事,只要在組件里調(diào)用

this.props.navigator.pop();

就可以返回上一頁了同時navigator里也有其他的方法,比如jumpTo(), reset()都可以調(diào)用。

最后,大家可以思考一下:?

如果按照上述的方式實現(xiàn),那我在跳轉(zhuǎn)頁面的時候,我需要把跳轉(zhuǎn)到頁面的組件引入,我們直接把組件的名字當成唯一的標識,這樣真的好么???會有什么弊端???

留個問題給大家,下一期可能要過幾天,有個厲害的東西要研究一下!hiahiahiahiahiahiahia~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容