このガイドでは、スタイル付きコンポーネントと TypeScript を使用して Expo プロジェクトをセットアップする手順を説明します。このプロジェクトはテーマ システム、ダーク モード、タイプ セーフ UI コンポーネントをサポートしており、最新の React Native アプリケーションの堅牢な基盤となります。
コード
次のコマンドを実行して、新しい Expo プロジェクトを初期化します:
npx create-expo-app styled-setup --template # Choose template: ➟ Blank (TypeScript)
スタイル付きコンポーネントに必要な依存関係をインストールします。
# Install styled-components npm install styled-components # Install type definitions for styled-components npm install @types/styled-components-react-native --save-dev
次の構造でプロジェクトを編成します:
├── app/ # Expo Router app directory │ ├── (tabs)/ # Tab navigation │ │ ├── index.tsx # First tab screen │ │ ├── two.tsx # Second tab screen │ │ └── _layout.tsx # Tab layout configuration │ ├── _layout.tsx # Root layout │ ├── modal.tsx # Modal screen │ └── +not-found.tsx # 404 screen ├── components/ │ ├── ui/ # UI components │ │ ├── button/ │ │ ├── container/ │ │ ├── text/ │ │ └── layout/ │ └── ExternalLink.tsx ├── themes/ # Theme configuration │ ├── colors.ts # Color definitions │ ├── sizes.ts # Size scales │ ├── spacing.ts # Spacing system │ ├── styles.ts # Common styles │ ├── theme.d.ts # Theme type definitions │ └── index.ts # Theme export └── hooks/ # Custom hooks └── useColors.ts # Theme colors hook
Button コンポーネントは、バリアント、サイズ、読み込み状態をサポートする柔軟なスタイル付きボタンです。
import Button from "@/components/ui/button"; // Usage <Button variant="primary" size="lg" shape="rounded" loading={false}> Click Me </Button>;
小道具:
Flex コンポーネントと FlexItem コンポーネントは、CSS フレックスボックスからインスピレーションを得た柔軟なレイアウト システムを提供します。
import { Flex, FlexItem } from "@/components/ui/layout"; // Usage <Flex direction="row" justify="space-between" align="center" gap="md"> <FlexItem grow={1}> <Text>Content</Text> </FlexItem> </Flex>;
小道具:
themes/colors.ts で一貫したカラー パレットを定義します。
const colors = { primary: "#3b82f6", secondary: "#22c55e", success: "#16a34a", error: "#dc2626", warning: "#f59e0b", info: "#0ea5e9", // Additional colors... };
主題/spacing.ts で間隔を標準化します:
const spacing = { padding: { xs: 4, sm: 8, md: 16, lg: 24, xl: 32, }, // Margin and gap definitions... };
テーマ/styles.ts でフォント サイズを定義します:
const fontSizes = { xs: 8, sm: 12, base: 14, md: 16, lg: 20, xl: 24, // Additional sizes... };
アプリはシステムのダークモード設定に動的に適応します:
npx create-expo-app styled-setup --template # Choose template: ➟ Blank (TypeScript)
主題/theme.d.ts を使用してテーマのタイプの安全性を確保します:
# Install styled-components npm install styled-components # Install type definitions for styled-components npm install @types/styled-components-react-native --save-dev
Button コンポーネントの props を定義します:
├── app/ # Expo Router app directory │ ├── (tabs)/ # Tab navigation │ │ ├── index.tsx # First tab screen │ │ ├── two.tsx # Second tab screen │ │ └── _layout.tsx # Tab layout configuration │ ├── _layout.tsx # Root layout │ ├── modal.tsx # Modal screen │ └── +not-found.tsx # 404 screen ├── components/ │ ├── ui/ # UI components │ │ ├── button/ │ │ ├── container/ │ │ ├── text/ │ │ └── layout/ │ └── ExternalLink.tsx ├── themes/ # Theme configuration │ ├── colors.ts # Color definitions │ ├── sizes.ts # Size scales │ ├── spacing.ts # Spacing system │ ├── styles.ts # Common styles │ ├── theme.d.ts # Theme type definitions │ └── index.ts # Theme export └── hooks/ # Custom hooks └── useColors.ts # Theme colors hook
このガイドでは、Expo および TypeScript でスタイル付きコンポーネントを使用するための包括的なセットアップを提供します。堅牢なテーマ システム、ダーク モードのサポート、タイプ セーフ コンポーネントを備えたこの基盤により、スケーラブルで保守可能なコードベースが保証されます。プロジェクト固有の要件を満たすように、このセットアップをカスタマイズおよび拡張します。
ご質問やフィードバックがありますか?コメントをドロップするか、ご連絡ください。 ?
以上がスタイル付きコンポーネントと TypeScript を使用した Expo のセットアップの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。