react-native教程:通過NavigationExperimental組件導航(一)


在多個界面直接跳轉和切換是一個app最基本的功能。本文我們通過小例子來講述通過NavigationExperimental組件實現導航。

先看看原型設計:

我們要實現的功能包括:

  • 通過選項卡切換界面(放貸計算、利率查詢和關於我們三個界面)
  • 點擊列表中的條目,進入查看詳情(利率查詢,傳遞年份參數到詳情頁面)
  • 導航欄返回按鈕(查看利率詳情頁面)
  • 跨選項卡跳轉頁面(從“房貸計算”界面點擊“查看2015年利率”)
  • 通過導航欄的按鈕控制界面上的內容(“清零”按鈕)

react-native中的導航組件對比

react-native中的導航組件包括NavigatorIOS, Navigator和NavigationExperimental,其中NavigatorIOS只能在iOS平台使用不兼容Android,而Navigator由於各種弊端,官方決定放棄對它的進一步開發和支持。而繼任者就是NavigationExperimental組件(以后可能會叫Navigation)。

NavigationExperimental組件當前還處於早期試驗階段,在最近(2016年3月21日)發布的v0.22.2中,才算比較完整和穩定。

NavigationExperimental組件中包含了很多個類和工具函數,本文我們僅僅使用最基礎的RootContainer和StateUtil類,並對其封裝實現了自定義導航工具NavigationUtility。NavigationUtility導航工具只有一個函數:"go",非常簡單易用,稍后會進行介紹。

由於我們的封裝超級簡化,因此並沒有實現界面過渡動畫,用戶體驗欠佳,好處是不用同時渲染多個界面,節約內存和性能。

接下來我們從零開始構建這個小demo。

初始化一個空項目

一個react-native項目,只有一個不可或缺的必備文件就是package.json,其他文件都可以通過命令自動產生。

在package.json中,規定了react-native依賴項的版本,只有v0.22.2及其以后的版本才能與NavigationExperimental組件兼容。另外,由於新版本中引入了hot load特性,需要引入react 0.14.7作為依賴項。

{
  "name": "RNavigation",
  "version": "0.0.1",
  "private": true,
  "scripts": {
    "start": "node node_modules/react-native/local-cli/cli.js start"
  },
  "dependencies": {
    "react": "^0.14.7",
    "react-native": "^0.22.2"
  }
}

創建一個空目錄(如~/RCTDev/RNavigation),然后把以上代碼保存為package.json。在該目錄下執行命令:"npm install",安裝react-native和其他依賴項。

安裝react-native的過程稍慢,可能需要等待幾分鍾時間,完成之后的目錄結構如下:

執行"react-native upgrade"和"react-native android"即可生成ios平台、android平台、watchman、flow、gitignore等項目基礎文件。完成之后用Webstorm打開看到的目錄結構如下:

還少了index.ios.js,執行"cp index.android.js index.ios.js"復制一份即可。現在,我們可以通過"react-native run-ios"來啟動模擬器看效果了。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM