មេរៀន React

សមាសភាគអនុគមន៍មានប្រភេទ ឯកសារមួយក្នុងមួយសមាសភាគ គ្រប់គ្រងជាមួយស្តង់ដារ value + onChange លំនាំ — អ្វីៗដំណើរការតាមរបៀបដែល React ធ្វើរួចហើយ។

អ្វីដែលអ្នកនឹងសាងសង់

ទម្រង់ទំនាក់ទំនងតូចមួយ — វាលបញ្ចូលដែលមានស្លាក ប៊ូតុងដាក់ស្នើ ស្ថានភាពដែលគ្រប់គ្រង អាកប្បកិរិយាក្តារចុច និងកម្មវិធីអានអេក្រង់ពិតប្រាកដ — ដំបូងទទេស្អាត បន្ទាប់មកមានរចនាប័ទ្ម ក្នុងរយៈពេលប្រហែល ១០ នាទី។

មុនពេលអ្នកចាប់ផ្តើម

អ្នកត្រូវការ git, Node 22 ឬថ្មីជាងនេះ និង pnpm 10 ឬថ្មីជាងនេះ។ គម្រោង React 18+ ណាក៏បាន — Next.js, Vite ឬ React ធម្មតា។

ជំហាន ១ — យកកូដ

git clone https://github.com/LilyDesignSystem/lily-design-system
cd lily-design-system/lily-design-system-react-headless
pnpm install
pnpm test        # vitest + @testing-library/react
pnpm run storybook   # browse all 571 components

សមាសភាគជាឯកសារសំប៉ែតក្នុង components/ — Button.tsx, TextInput.tsx — នីមួយៗមានតេស្ត story និងឯកសាររបស់វានៅក្បែរ។ ចម្លងឯកសារដែលអ្នកត្រូវការចូលកម្មវិធីរបស់អ្នក ឬ vendor ឃ្លាំង ហើយនាំចូលពីវា។

ជំហាន ២ — សមាសភាគដំបូងរបស់អ្នក

import Button from "lily-design-system-react-headless/components/Button";

export function SaveBar() {
  return <Button onClick={save}>Save</Button>;
}

បង្ហាញ <button class="button" type="button">។ លក្ខណៈសម្បត្តិ៖ type, disabled, pressed (បង្ហាញ aria-pressed), label (មួយ aria-label ការបដិសេធ) classNameហើយគុណលក្ខណៈបន្ថែមណាមួយរាលដាលលើធាតុឫស។

ជំហាន ៣ — ផ្សំទម្រង់តូចមួយ

import { useState } from "react";
import Form from ".../components/Form";
import Field from ".../components/Field";
import TextInput from ".../components/TextInput";
import Button from ".../components/Button";

export function ContactForm() {
  const [name, setName] = useState("");
  return (
    <Form label="Contact form" onSubmit={handleSubmit}>
      <Field label="Full name" required>
        <TextInput id="name" label="Full name" value={name} onChange={setName} required />
      </Field>
      <Button type="submit">Save</Button>
    </Form>
  );
}

Field យកការមើលឃើញ label ជាលក្ខណៈសម្បត្តិផ្ទាល់ខ្លួន ជាជាងសមាសភាគស្លាកដែលជាប់គ្នា — ឆ្លងវាម្តងនៅលើ Fieldនិង TextInputដែលត្រូវគ្នានៅលើ label ផ្តល់ឈ្មោះដែលអាចចូលប្រើបាន។

បានផ្ទៀងផ្ទាត់ 2026-08-29៖ សេចក្តីព្រាងដំបូងបានដាក់សមាសភាគដាច់ដោយឡែក Label ខាងក្នុង Fieldដែលបង្ហាញ ពីរ ស្លាក (មួយទទេ) ពីព្រោះ Field បានបង្ហាញរបស់ខ្លួនរួចហើយពី label លក្ខណៈសម្បត្តិ — បានរកឃើញដោយចងក្រងកំណាត់ពិតប្រាកដ។ ផ្លូវទម្រង់ទំនាក់ទំនងផ្សំ ជាលំនាំដូចគ្នា ដែលធ្វើតេស្តដោយ e2e និង axe ពិតប្រាកដ។

ជំហាន ៤ — ដាក់រចនាប័ទ្ម

អ្វីៗខាងលើបង្ហាញជារចនាសម្ព័ន្ធសុទ្ធ រួចជាស្រេចសម្រាប់រចនាប័ទ្មរបស់អ្នក។ ដាក់រចនាប័ទ្ម hook — .button, .text-input, .label, .field — ក្នុងសន្លឹករចនាប័ទ្មរបស់អ្នក ដាក់ស្រទាប់ឧបករណ៍ប្រើប្រាស់ Tailwind តាមរយៈ classNameឬភ្ជាប់ស្បែករួចជាស្រេច៖

<link rel="stylesheet" href="/themes/united-states-web-design-system.css" />

ជំហាន ៥ — មើលអ្វីៗទាំងអស់ដំណើរការ

កម្មវិធីគំរូ Next.js ជាកាតាឡុកពេញលេញដែលមានរចនាប័ទ្ម និងបង្ហាញ ជាមួយ Playwright e2e និង axe-core baseline៖

git clone https://github.com/LilyDesignSystem/lily-design-system
cd lily-design-system/lily-design-system-react-next-examples
pnpm install && pnpm run dev

ជំហានបន្ទាប់

មានសំណួរតាមផ្លូវ? ទំព័រជំនួយ ពេញដោយចម្លើយ — ហើយប្រសិនបើជំហានណាអាចច្បាស់ជាងនេះ ប្រាប់យើង ហើយយើងនឹងកែលម្អមេរៀនដោយអំណរ។