0Pricing
React Academy · บทเรียน

โครงสร้างโฟลเดอร์และหลักการตั้งชื่อ

จัดระเบียบโครงการ React ด้วยโฟลเดอร์ตามฟีเจอร์และชื่อไฟล์ที่ชัดเจน

โครงสร้างโฟลเดอร์และหลักการตั้งชื่อ เป็นบทเรียน React Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน React Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส React Academy มีบทเรียนทั้งหมด 4 บทเรียน

ยินดีต้อนรับ

ในบทเรียนนี้ คุณจะได้สำรวจโครงสร้างโฟลเดอร์ทั่วไปสำหรับโครงการ React เรียนรู้หลักเกณฑ์การตั้งชื่อไฟล์และคอมโพเนนต์ และทำความเข้าใจวิธีจัดระเบียบโค้ดเมื่อโครงการเติบโตขึ้น

โครงสร้างเริ่มต้น

โปรเจกต์ Vite + React ขั้นต่ำมี `src/App.jsx` และ `src/main.jsx` ซึ่งเพียงพอสำหรับเดโมขนาดเล็ก แต่ไม่เหมาะกับการขยาย เมื่อเพิ่มฟีเจอร์ ให้สร้างโฟลเดอร์เฉพาะเพื่อจัดโค้ดที่เกี่ยวข้องไว้ด้วยกัน
src/
  main.jsx
  App.jsx
  index.css

โครงสร้างตามฟีเจอร์

จัดกลุ่มไฟล์ตามฟีเจอร์แทนการจัดตามประเภท แต่ละโฟลเดอร์ฟีเจอร์จะมีคอมโพเนนต์ สไตล์ การทดสอบ และฟังก์ชันช่วยเหลือของตัวเอง ทำให้เพิ่มหรือลบฟีเจอร์ทั้งชุดได้ง่ายในครั้งเดียว
src/
  features/
    auth/
      LoginForm.jsx
      LoginForm.test.jsx
      useLogin.js
    dashboard/
      Dashboard.jsx
      useDashboardData.js
  components/     <- shared UI only
  hooks/          <- shared hooks
  lib/            <- utilities

การตั้งชื่อไฟล์คอมโพเนนต์

ตั้งชื่อไฟล์คอมโพเนนต์ด้วย **PascalCase** ให้ตรงกับชื่อคอมโพเนนต์ เช่น `UserCard.jsx`, `NavigationBar.jsx` การมีคอมโพเนนต์หนึ่งรายการต่อไฟล์ถือเป็นมาตรฐาน การใช้ `.jsx` (หรือ `.tsx`) จะบอกเอดิเตอร์ว่าไฟล์นั้นมี JSX อยู่

การตั้งชื่อไฟล์ที่ไม่ใช่คอมโพเนนต์

Hooks ยูทิลิตี และค่าคงที่ใช้ **camelCase** เช่น `useAuth.js`, `formatDate.js`, `apiClient.js` ไฟล์การทดสอบจะตั้งชื่อตามไฟล์ต้นฉบับ โดยใช้ `.test` หรือ `.spec` เช่น `useAuth.test.js`

ไฟล์ดัชนีเพื่อการนำเข้าที่สะอาด

การเพิ่ม `index.js` ลงในโฟลเดอร์ทำให้คุณนำเข้าได้จากเส้นทางโฟลเดอร์แทนเส้นทางไฟล์เต็ม ให้ไฟล์ดัชนีมีเฉพาะการส่งออกซ้ำเท่านั้น — ห้ามใส่ตรรกะ
// src/features/auth/index.js
export { LoginForm } from './LoginForm';
export { useLogin } from './useLogin';

// Consumer
import { LoginForm } from '@/features/auth';

การนำเข้าแบบสัมบูรณ์ด้วยนามแฝงเส้นทาง

กำหนดนามแฝง `@/` ให้ชี้ไปยัง `src/` ใน `vite.config.js` และ `tsconfig.json` วิธีนี้ช่วยหลีกเลี่ยงเส้นทางสัมพัทธ์ที่เปราะบาง เช่น `../../../../components/Button`
// vite.config.js
resolve: {
  alias: { '@': path.resolve(__dirname, 'src') }
}

คอมโพเนนต์ที่ใช้ร่วมกันกับคอมโพเนนต์ตามฟีเจอร์

วางคอมโพเนนต์ที่ใช้ในฟีเจอร์เดียวเท่านั้นไว้ในโฟลเดอร์ของฟีเจอร์นั้น ย้ายคอมโพเนนต์ไปที่ `src/components/` ก็ต่อเมื่อมีฟีเจอร์ตั้งแต่สองฟีเจอร์ขึ้นไปต้องใช้ หลีกเลี่ยงการแยกคอมโพเนนต์ออกมาก่อนเวลาอันควร

ไฟล์ค่าคงที่และการกำหนดค่า

เก็บสตริงพิเศษ URL พื้นฐานของ API และตัวห่อหุ้มตัวแปรสภาพแวดล้อมไว้ใน `src/lib/constants.js` หรือ `src/config.js` อย่ากระจายสตริง `process.env.VITE_API_URL` ไปทั่วหลายไฟล์
// src/config.js
export const API_BASE = import.meta.env.VITE_API_URL;

ชนิดข้อมูลและอินเทอร์เฟซ (TypeScript)

ในโปรเจกต์ TypeScript ให้วางชนิดข้อมูลไว้ร่วมกับฟีเจอร์หรือคอมโพเนนต์ที่ใช้ชนิดข้อมูลนั้น สำหรับชนิดข้อมูลที่ใช้ร่วมกันในหลายฟีเจอร์ ให้สร้าง `src/types/` โดยมีหนึ่งไฟล์ต่อขอบเขตของโดเมน

ตรวจสอบอย่างรวดเร็ว

ข้อได้เปรียบหลักของโครงสร้างโฟลเดอร์ตามฟีเจอร์เมื่อเทียบกับโครงสร้างตามประเภทคืออะไร

สรุปทบทวน

ใช้โฟลเดอร์ตามฟีเจอร์ ใช้ PascalCase กับไฟล์คอมโพเนนต์ ใช้ camelCase กับ Hooks และยูทิลิตี ใช้การส่งออกซ้ำผ่าน index.js เพื่อการนำเข้าที่สะอาด และใช้นามแฝงเส้นทางอย่าง @/ เพื่อกำจัดเส้นทางสัมพัทธ์ที่ยาว

จบหลักสูตร

ขอแสดงความยินดี! คุณเรียน **React Strict Mode & Best Practices** จบแล้ว ตอนนี้คุณเข้าใจพฤติกรรมของ StrictMode วิธีเขียนฟังก์ชันเรนเดอร์บริสุทธิ์ การใช้ key และ ref อย่างถูกต้อง และโครงสร้างโฟลเดอร์ที่รองรับการขยายแล้ว

คำถามที่พบบ่อย

บทเรียน “โครงสร้างโฟลเดอร์และหลักการตั้งชื่อ” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “โครงสร้างโฟลเดอร์และหลักการตั้งชื่อ” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส React Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส React Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “โครงสร้างโฟลเดอร์และหลักการตั้งชื่อ”

จัดระเบียบโครงการ React ด้วยโฟลเดอร์ตามฟีเจอร์และชื่อไฟล์ที่ชัดเจน คุณปฏิบัติ React Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน React Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน React Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน

บทเรียน “โครงสร้างโฟลเดอร์และหลักการตั้งชื่อ” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน React Academy นี้ได้ไหม

ได้ บทเรียน React Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. StrictMode ทำอะไร
  2. คอมโพเนนต์บริสุทธิ์และการหลีกเลี่ยงผลข้างเคียงในการเรนเดอร์
  3. แนวทางปฏิบัติที่ดีสำหรับ Key และ Ref
  4. โครงสร้างโฟลเดอร์และหลักการตั้งชื่อ
← กลับไปที่ React Academy