😎 React TypeScript

สอนใช้ React และ TypeScript วนลูปข้อมูลด้วย .map() พร้อมกำหนด Type และการใช้ Unique Key ให้ถูกต้อง

5 นาที 22 views บันทึกเป็น PDF
สอนใช้ React และ TypeScript วนลูปข้อมูลด้วย .map() พร้อมกำหนด Type และการใช้ Unique Key ให้ถูกต้อง

เรียนรู้วิธีแสดงผลรายการข้อมูลใน React ด้วย .map() พร้อมวิธีเขียน TypeScript ให้ปลอดภัย และทำไมการใส่ Unique Key ถึงสำคัญมากสำหรับมือใหม่

ทำไมต้องวนลูปข้อมูลใน React?

เวลาเราเขียนเว็บ เรามักจะเจอสถานการณ์ที่มีข้อมูลชุดใหญ่ เช่น รายชื่อสินค้าหรือรายชื่อเพื่อนในแอป แทนที่เราจะเขียนโค้ดแสดงผลทีละตัว เราจึงต้องใช้การ Rendering Lists (การแสดงผลข้อมูลที่เป็นรายการ) เข้ามาช่วย

ลองนึกภาพว่าคุณกำลังจัดของใส่กล่อง ถ้าคุณมีของ 100 ชิ้น การหยิบใส่ทีละชิ้นคงเหนื่อยมาก การวนลูป (Loop) ก็เหมือนการสั่งให้หุ่นยนต์หยิบของใส่กล่องให้เราโดยอัตโนมัติ ไม่ว่าข้อมูลจะมีกี่ชิ้น หุ่นยนต์ตัวนี้ก็จะจัดการแสดงผลให้เราจนครบเสมอ

ใน React เราจะใช้ฟังก์ชันที่ชื่อว่า .map() ซึ่งเป็นเครื่องมือที่เอาไว้แปลงข้อมูลหนึ่งชุดให้กลายเป็นอีกชุดหนึ่ง การใช้ .map() จะช่วยให้โค้ดของคุณสั้นลงและอ่านง่ายขึ้นมาก ไม่ต้องคัดลอกโค้ดเดิมซ้ำๆ ให้รกสายตา

การใช้ .map() วนลูปข้อมูลใน TypeScript

เมื่อเราใช้ TypeScript (ภาษาโปรแกรมที่เพิ่มระบบตรวจสอบความถูกต้องของข้อมูล) เราจำเป็นต้องบอกให้คอมพิวเตอร์รู้ว่า ข้อมูลที่อยู่ในรายการคืออะไรบ้าง เพื่อป้องกันไม่ให้เกิดบั๊ก (ข้อผิดพลาดในโค้ด) ในอนาคต

ก่อนอื่นเราต้องสร้าง Interface (การกำหนดโครงสร้างของข้อมูล) เพื่อระบุว่าใน Object แต่ละตัว ต้องมีข้อมูลหน้าตาเป็นอย่างไรบ้าง นี่คือวิธีเขียนที่ถูกต้องและปลอดภัยที่สุดสำหรับโปรแกรมเมอร์มืออาชีพ

// กำหนดโครงสร้างข้อมูลด้วย Interface
interface User {
  id: number;
  name: string;
}

// ข้อมูลตัวอย่างที่เก็บไว้ใน Array
const users: User[] = [
  { id: 1, name: "สมชาย" },
  { id: 2, name: "สมหญิง" }
];

// การวนลูปแสดงผล
const UserList = () => (
  <ul>
    {users.map((user) => (
      <li key={user.id}>{user.name}</li>
    ))}
  </ul>
);

ในตัวอย่างนี้ เรากำหนดให้ users เป็น Array (ชุดข้อมูลที่เก็บค่าหลายๆ ตัวไว้ด้วยกัน) ของ User จากนั้นใช้ .map() เพื่อเปลี่ยนข้อมูลแต่ละตัวให้เป็นแท็ก <li> ของ HTML

ความสำคัญของ Unique Key ที่ห้ามมองข้าม

ทุกครั้งที่เราวนลูปใน React เราต้องใส่ Unique Key (รหัสประจำตัวที่ไม่ซ้ำกันของข้อมูลแต่ละรายการ) เสมอ ถ้าเราไม่ใส่ React จะแจ้งเตือนด้วยตัวหนังสือสีแดงในหน้า Console (หน้าต่างแสดงสถานะการทำงานของเบราว์เซอร์) เพื่อบอกว่ามันทำงานได้ไม่เต็มประสิทธิภาพ

คิดซะว่า key เหมือนเลขบัตรประชาชนของข้อมูลแต่ละตัว ถ้าทุกคนไม่มีเลขประจำตัว เวลา React อยากจะแก้ไขหรือลบข้อมูลตัวไหน มันจะงงว่าต้องทำกับตัวไหนกันแน่ การระบุ key จึงช่วยให้ React ทำงานได้เร็วและแม่นยำขึ้น

ข้อควรระวัง คือห้ามใช้เลขลำดับ (index) ของ Array มาเป็น key โดยเด็ดขาดถ้าข้อมูลมีการเปลี่ยนแปลงลำดับได้ เพราะมันจะทำให้การจัดการหน้าจอผิดพลาด ให้ใช้ค่าที่ไม่มีวันซ้ำกันอย่าง id จากฐานข้อมูลแทนเสมอ

จุดที่มือใหม่มักพลาดและวิธีแก้

ข้อผิดพลาดที่เจอบ่อยที่สุดคือการลืมใส่ key หรือการใส่ key ที่ซ้ำกันในรายการข้อมูล หากคุณเจอปัญหาหน้าจอไม่ยอมอัปเดตข้อมูล หรือข้อมูลแสดงผลสลับกัน ให้กลับมาเช็กที่ค่า key เป็นอันดับแรก

อีกเรื่องคือการลืมกำหนด Type (ชนิดของข้อมูล) ให้กับตัวแปรที่รับค่ามาจาก .map() ถ้าคุณปล่อยให้เป็น any (ชนิดข้อมูลอะไรก็ได้) จะทำให้ TypeScript ไม่สามารถช่วยเตือนคุณได้เมื่อพิมพ์ชื่อตัวแปรผิด

วิธีแก้คือการตรวจสอบเสมอว่าข้อมูลที่ได้มามีโครงสร้างตรงกับ interface ที่ตั้งไว้ไหม ถ้าข้อมูลมาจาก API (ช่องทางเชื่อมต่อข้อมูลระหว่างโปรแกรม) ให้ใช้การตรวจสอบข้อมูลให้ดีก่อนจะเอาไปแสดงผลบนหน้าจอ การเขียนโค้ดให้รัดกุมตั้งแต่ต้น จะช่วยลดเวลาแก้บั๊กได้มหาศาล

สรุป: นำไปใช้ในโปรเจกต์จริง

การวนลูปข้อมูลเป็นพื้นฐานสำคัญที่สุดอย่างหนึ่งในการทำเว็บแอปพลิเคชัน ไม่ว่าคุณจะทำหน้าแสดงรายการสินค้า รายการข้อความแชท หรือรายการผู้ใช้งาน ทั้งหมดนี้ใช้หลักการเดียวกันคือ .map() ร่วมกับ key ที่ไม่ซ้ำกัน

ลองฝึกฝนด้วยการสร้างโปรเจกต์เล็กๆ เช่น แอปรายการสิ่งที่ต้องทำ (To-do List) เริ่มจากการเก็บข้อมูลในรูปแบบ Array ของ Object แล้วลองใช้ .map() แสดงผลออกมาบนหน้าจอ อย่าลืมใส่ id ให้ข้อมูลแต่ละตัวและนำไปใช้เป็น key ในทุกครั้ง

ถ้าทำจนคล่องแล้ว ให้ลองเพิ่มเงื่อนไขในการแสดงผล เช่น แสดงเฉพาะข้อมูลที่ยังทำไม่เสร็จด้วย .filter() (คำสั่งกรองข้อมูล) การฝึกแบบนี้จะทำให้คุณเข้าใจการจัดการข้อมูลใน React ได้ลึกซึ้งยิ่งขึ้น และพร้อมสำหรับการทำงานจริงในทีมพัฒนาซอฟต์แวร์ครับ

แชร์บทความ

Facebook X LINE

บทความที่เกี่ยวข้อง

วิธีเช็ก Type ด้วย tsc --noEmit และตั้งค่า Environment Variables ใน React TypeScript ก่อน Deploy
React TypeScript

วิธีเช็ก Type ด้วย tsc --noEmit และตั้งค่า Environment Variables ใน React TypeScript ก่อน Deploy

ไม่อยากให้แอปพังตอน Deploy ต้องอ่าน! สอนวิธีใช้ tsc --noEmit ตรวจสอบข้อผิดพลาดในโปรเจกต์ React TypeScript พร้อมวิธีตั้งค่า Environment Variables ให้ปลอดภัย

1 month ago 8 นาที
22 views
React TypeScript Workshop: จัดการ State, Form และ API ให้ปลอดภัยแบบมือโปร
React TypeScript

React TypeScript Workshop: จัดการ State, Form และ API ให้ปลอดภัยแบบมือโปร

เรียนรู้วิธีเขียน React ด้วย TypeScript ให้โค้ดสะอาดและลดบั๊ก ตั้งแต่การจัดการ Form ด้วย React Hook Form ไปจนถึงการดึงข้อมูล API และทำ Global State แบบ Type Safe

1 month ago 8 นาที
24 views
React TypeScript Workshop: เริ่มต้นเขียนโค้ดแบบมือโปรด้วย Type-First Architecture
React TypeScript

React TypeScript Workshop: เริ่มต้นเขียนโค้ดแบบมือโปรด้วย Type-First Architecture

อยากเขียน React ให้เก่งและบั๊กน้อยลงไหม? มาเรียนรู้วิธีวางโครงสร้างข้อมูล (Type-First) และสร้าง UI Component ที่นำกลับมาใช้ใหม่ได้จริง

1 month ago 7 นาที
23 views