Rumah >hujung hadapan web >tutorial js >Menyediakan Ekspo dengan Komponen Bergaya dan TypeScript
Panduan ini memandu anda melalui penyediaan projek Ekspo menggunakan komponen gaya dan TypeScript. Projek ini menyokong sistem tema, mod gelap dan komponen UI selamat jenis, menjadikannya asas yang kukuh untuk aplikasi React Native moden.
Kod
Jalankan arahan berikut untuk memulakan projek Ekspo baharu:
npx create-expo-app styled-setup --template # Choose template: ➟ Blank (TypeScript)
Pasang kebergantungan yang diperlukan untuk komponen gaya:
# Install styled-components npm install styled-components # Install type definitions for styled-components npm install @types/styled-components-react-native --save-dev
Atur projek anda dengan struktur berikut:
├── 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
Komponen Butang ialah butang yang fleksibel dan digayakan yang menyokong varian, saiz dan keadaan pemuatan.
import Button from "@/components/ui/button"; // Usage <Button variant="primary" size="lg" shape="rounded" loading={false}> Click Me </Button>;
Prop:
Komponen Flex dan FlexItem menawarkan sistem susun atur fleksibel yang diilhamkan oleh CSS flexbox.
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>;
Prop:
Tentukan palet warna yang konsisten dalam tema/warna.ts:
const colors = { primary: "#3b82f6", secondary: "#22c55e", success: "#16a34a", error: "#dc2626", warning: "#f59e0b", info: "#0ea5e9", // Additional colors... };
Standardkan jarak dalam tema/spasi.ts:
const spacing = { padding: { xs: 4, sm: 8, md: 16, lg: 24, xl: 32, }, // Margin and gap definitions... };
Tentukan saiz fon dalam tema/gaya.ts:
const fontSizes = { xs: 8, sm: 12, base: 14, md: 16, lg: 20, xl: 24, // Additional sizes... };
Apl menyesuaikan diri dengan pilihan mod gelap sistem secara dinamik:
npx create-expo-app styled-setup --template # Choose template: ➟ Blank (TypeScript)
Pastikan keselamatan jenis tema dengan tema/tema.d.ts:
# Install styled-components npm install styled-components # Install type definitions for styled-components npm install @types/styled-components-react-native --save-dev
Tentukan prop untuk komponen Butang:
├── 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
Panduan ini menyediakan persediaan yang komprehensif untuk menggunakan komponen gaya dengan Ekspo dan TypeScript. Dengan sistem tema yang mantap, sokongan mod gelap dan komponen selamat jenis, asas ini memastikan pangkalan kod yang boleh skala dan boleh diselenggara. Sesuaikan dan lanjutkan persediaan ini untuk memenuhi keperluan unik projek anda.
Ada soalan atau maklum balas? Lepaskan komen atau hubungi! ?
Atas ialah kandungan terperinci Menyediakan Ekspo dengan Komponen Bergaya dan TypeScript. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!