返回Storybook 簡介
章節
  • 開始使用
  • 簡單元件
  • 複合元件
  • 資料
  • 結論
  • 貢獻

React Native 版 Storybook 教學

在您的開發環境中設定 Storybook
這個社群翻譯尚未更新至最新版本的 Storybook。請協助我們將英文指南中的變更套用至此翻譯,以更新此翻譯。 歡迎提交 Pull Request.

Storybook 可協助您建立與應用程式業務邏輯和內容隔離的 UI 元件。此版本的 Storybook 簡介教學適用於 React Native;其他版本則適用於 React、 Vue、 Angular、 Svelte 和 Ember

Storybook and your app

設定 React Native Storybook

我們需要遵循幾個步驟才能開始。在本教學中,我們將使用這個 範本,其中我們已經使用 Expo 設定了 React Native 應用程式,並將 Storybook 新增至專案中。

在我們開始之前,有些事項需要考量

  • 為了在整個教學過程中協助您,您需要一部手機或模擬器,且已設定為允許您執行應用程式。如需更多資訊,請參閱 Expo 文件中關於 在 IOS 上執行Android 的內容。
  • 本教學將著重於 iOS/Android。React Native 可以針對本教學未涵蓋的其他平台。
  • 您也需要在您的電腦上設定 Node.js

首先下載我們為本教學建立的範本。

複製
npx degit chromaui/intro-storybook-react-native-template#main taskbox

接下來,讓我們安裝相依性並執行應用程式,以確保一切如預期運作。

複製
cd taskbox
yarn install

現在您有了應用程式,讓我們執行它以確保一切如預期運作。

您可以選擇 ios 或 android 並執行任一應用程式,以確保應用程式運作正常。


# Run the application on iOS
yarn ios

# Run the application on Android
yarn android

# Run Storybook on iOS
yarn storybook:ios

# Run Storybook on Android
yarn storybook:android

💡 在本教學中,將使用 Yarn。如果您正在遵循本教學,但未設定 Yarn,您可以輕鬆地將命令換成符合您選擇的套件管理器 (例如,npmpnpm)。

使用 yarn ios 執行應用程式時,您應該會在裝置上看到此畫面

expo starter screen

使用 yarn storybook:ios 執行 Storybook 時,您應該會看到此畫面

Storybook UI

運作方式

初始化時,範本已提供必要的組態,以協助我們開始使用 React Native 開發應用程式。在我們開始從頭建置 UI 之前,讓我們花點時間看看 Storybook 在 React Native 應用程式中的運作方式以及有何不同之處。

React Native 中的 Storybook 是一個您可以在應用程式中呈現的元件,而不是 Storybook 在其自身上執行的其他架構版本。

由於此區別,我們需要一種在應用程式和 Storybook 之間切換的方法。為此,我們使用環境變數,現在我們會快速介紹一下。

💡 如需有關如何使用環境變數的更多詳細資訊,請參閱 Expo 文件

在我們的專案中,有一個稱為 app.config.js 的 Expo 設定檔,此檔案是我們設定應用程式名稱和可在整個應用程式中使用的常數等項目。

在此檔案中,我們將 storybookEnabled 常數設定為環境變數 STORYBOOK_ENABLED 的值,我們稍後會介紹。

複製
app.config.js
export default ({ config }) => ({
  ...config,
  name: 'Storybook Tutorial Template',
  slug: 'storybook-tutorial-template',
  extra: {
    storybookEnabled: process.env.STORYBOOK_ENABLED,
  },
});

這可讓我們使用 expo-constants 套件在應用程式中存取 storybookEnabled 變數,並使用它來判斷是否呈現 Storybook 或您的應用程式。

複製
App.js
import Constants from 'expo-constants';

function App() {
  // ... removed for brevity
}

// Default to rendering your app
let AppEntryPoint = App;

// Render Storybook if storybookEnabled is true
if (Constants.expoConfig.extra.storybookEnabled === 'true') {
  AppEntryPoint = require('./.storybook').default;
}

export default AppEntryPoint;

package.json 檔案中,我們看到一些新的 Storybook 指令碼。我們使用這些指令碼將環境變數傳遞至我們的應用程式,這會使用 cross-env 將進入點切換至 Storybook UI,以確保這可在所有平台 (Windows/macOS/Linux) 上運作。

複製
package.json
{
  "scripts": {
    "storybook": "cross-env STORYBOOK_ENABLED='true' expo start",
    "storybook:ios": "cross-env STORYBOOK_ENABLED='true' expo ios",
    "storybook:android": "cross-env STORYBOOK_ENABLED='true' expo android"
  }
}

這是我們的 STORYBOOK_ENABLED 環境變數設定為 true 的位置,這會告知我們的應用程式呈現 Storybook 而不是我們的應用程式。

💡 還有其他設定 Storybook 的方法,這只是最簡單的入門方法。

提交變更

在此階段,將我們的檔案新增至本機存放庫是安全的。執行下列命令以初始化本機存放庫,並新增及提交我們目前所做的變更。

複製
git init

接著

複製
git add .

然後

複製
git commit -m "first commit"

最後

複製
git branch -M main

讓我們開始建置第一個元件!

這個免費指南對您有幫助嗎?發推文表達讚賞並協助其他開發人員找到它。
下一章
簡單元件
獨立建置簡單元件
✍️ 在 GitHub 上編輯 – 歡迎提交 PR!
加入社群
6,616名開發人員
為何為何選擇 Storybook元件驅動 UI
開放原始碼軟體
Storybook

由以下人員維護
Chromatic
特別感謝 Netlify CircleCI